Æ®·¹ÀÌ ¾ÆÀÌÄÜ(TrayIcon) »ç¶óÁö´Â ¹ö±× ¸·±â


1. ¿ä¾à

¿äÁò ³ª¿À´Â ÇÁ·Î±×·¥¿¡¼­´Â ´ëºÎºÐ TrayIconÀ» Á¦°øÇÕ´Ï´Ù.
´Ü¼øÈ÷ ÇÁ·Î±×·¥ ¸®½ºÆ®(ŽºÅ© ¹Ù)¿¡ ³ª¿À´Â °Íº¸´Ù´Â, TrayIconÀÌ »ç¿ëÀÚ¿¡°Ô º¸´Ù ´õ Æí¸®ÇÑ UI¸¦ Á¦°øÇϱ⠶§¹®ÀÔ´Ï´Ù. ±×·±µ¥, ÀͽºÇ÷ξî(ÀÎÅÍ³Ý ÀͽºÇ÷ξ ¾Æ´Õ´Ï´Ù.)ÀÇ ¹ö±× ¶§¹®¿¡ <±×¸² 1>°ú °°ÀÌ Á¾Á¾ TrayIconÀÌ Tray¿¡¼­ »ç¶óÁö´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ÇÏÁö¸¸, ¸î¸îÀÇ ÇÁ·Î±×·¥Àº »ç¶óÁöÁö ¾Ê°í °è¼Ó ³²¾ÆÀÖ´Â °æ¿ìµµ º¼ ¼ö ÀÖ½À´Ï´Ù.

<±×¸² 1 - Æ®·¹ÀÌ ¾ÆÀÌÄÜ¿¡¼­ »ç¶óÁö´Â ¸ð½À>

±×·³ ¿ì¸®ÀÇ ÇÁ·Î±×·¥µµ ÀͽºÇ÷ξî¿Í´Â »ó°ü¾øÀÌ °è¼Ó Æ®·¹ÀÌ¿¡ ÀÖÀ¸·Á¸é ¾î¶»°³ ÇØ¾ßÇÒ±î¿ä? ÀͽºÇ÷ξî´Â ÀÚ½ÅÀÌ Á×¾ú´Ù°¡ »õ·Î ½ÃÀ۵Ǵ °æ¿ì ÇöÀç º¸ÀÌ´Â ¸ðµç À©µµ¿ì¿¡°Ô ¸ä¼¼Áö¸¦ º¸³»Áִµ¥, ¿ì¸®´Â ÀÌ ¸Þ½ÃÁö¸¦ µî·ÏÇÏ¿© »ç¿ëÇÔÀ¸·Î½á Æ®·¹ÀÌ ¾ÆÀÌÄÜÀÌ »ç¶óÁö´Â ¹ö±×¸¦ ¸·À» ¼ö ÀÖ½À´Ï´Ù.


2. º»¹®

Æ®·¹ÀÌ ¾ÆÀÌÄÜ¿¡ ¹®Á¦°¡ »ý±æ °æ¿ì, ¿¹¸¦ µé¾î ÀͽºÇ÷ξ ´Ù¿îµÇ¾î Àç ½ÃÀÛÀ» µÉ ¶§¿¡´Â ÀͽºÇ÷ξ ÇöÀç Æ®·¹ÀÌ ¾ÆÀÌÄÜ¿¡ µî·ÏµÇ¾î ÀÖ´Â ¸ðµç À©µµ¿ì¿¡°Ô º¸³»ÁÖ´Â ¸Þ½ÃÁö´Â ¡°Taskbar Created"¶ó´Â ¸Þ½ÃÁö ÀÔ´Ï´Ù.

¿©·¯ºÐÀÌ ±×µ¿¾È »ìÆìº¸¾Ò´Ü ¸Þ¼¼Áö¿Í ´Ù¸¥ Á¡Àº WM_MOUSEMOVE ¿Í °°Àº »ó¼ö°ªÀÌ ¾Æ´Ï¶ó, ¹®ÀÚ¿­À̶ó´Â Á¡Àε¥, ÀÌ·±½ÄÀ¸·Î ¹®ÀÚ¿­·Î µÈ ¸Þ¼¼Áö´Â ½ÇÁ¦·Î ÀÖÀ» ¼ö ¾ø½À´Ï´Ù. ¸ðµç ¸Þ¼¼Áö´Â ¹Ýµå½Ã »ó¼ö°ªÀ» °¡Áö°í ÀÖ¾î¾ß ÇÕ´Ï´Ù. ÇÏÁö¸¸, ´Ü¼øÇÑ »ó¼ö °ªÀ¸·Î ¸Þ¼¼Áö¸¦ Ç¥ÇöÇϱ⿡´Â ÇѰ谡 Àֱ⠶§¹®¿¡ ƯÁ¤ ¹®ÀÚ¿­·Î ºÎÅÍ ¸Þ¼¼Áö »ó¼ö¸¦ µî·ÏÇÏ´Â ¹æ¹ýÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¹°·Ð, ¡°Taskbar Created" µµ °íÀ¯ÀÇ ¸Þ¼¼Áö »ó¼ö°ªÀ» À©µµ¿ì·ÎºÎÅÍ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.

À̶§ ¸Þ½ÃÁö¸¦ µî·ÏÇÏ´Â ÇÔ¼ö´Â RegisterWindowMessage() ÇÔ¼ö ÀÔ´Ï´Ù. ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ¹ÝȯµÇ´Â ¸Þ½ÃÁö ID¸¦ °¡Áö°í ÀÏ¹Ý ¸Þ½ÃÁöó·³ ¸Þ½ÃÁö Çڵ鷯¸¦ µî·ÏÇÏ¿© »ç¿ëÇÏ¸é µË´Ï´Ù. ±×¸®°í °á°ú´Â È®ÀÎÇØ º¸°í ½ÍÀ¸½Ã¸é, Ctrl+Alt+Del À» ´­·¯¼­ ÀͽºÇ÷ξî(Explorer)¸¦ ¡®ÀÛ¾÷Á¾·á¡¯ ½ÃŰ½Ã¸é Æ®·¹ÀÌ ¾ÆÀÌÄÜ¿¡¼­ ¸î¸î ¾ÆÀÌÄÜÀÌ »ç¶óÁö´Â È¿°ú(?)¸¦ º¸½Ç ¼ö ÀÖ½À´Ï´Ù.
¸¸ÀÏ À©µµ¿ìÁî NT °è¿­À̶ó¸é(Windows 2000 Æ÷ÇÔ) <±×¸² 2>¿Í °°ÀÌ ÀÛ¾÷ °ü¸®ÀÚ¸¦ ¶ç¿ö¼­ °­Á¦·Î ÇÁ·Î¼¼½º¸¦ Á¾·áÇÏ¸é µË´Ï´Ù.

<±×¸² 2 - ÀÛ¾÷ °ü¸®ÀÚ>

±×¸®°í, ÀͽºÇ÷ξ ´Ù½Ã ½ÃÀÛÇϱâ À§Çؼ­´Â 'ÆÄÀÏ|»õ ÀÛ¾÷(½ÇÇà...)' ¸¦ ¼±ÅÃÇÏ¿© explorer À» ÀÔ·ÂÇÏ½Ã¸é µË´Ï´Ù.

ÇÏÁö¸¸, ¿ì¸®°¡ ¸¸µç ÇÁ·Î±×·¥ÀÇ Æ®·¹ÀÌ ¾ÆÀÌÄÜÀº ¿©ÀüÈ÷ Æ®·¹ÀÌ¿¡¼­ »ì¾Æ³²´Â °­ÇÑ ¸ð½ÀÀ» º¸¿©ÁÙ °ÍÀÔ´Ï´Ù.


3. ¿¹Á¦ ÄÚµå



// ¸Þ½ÃÁö µî·Ï °úÁ¤ 

UINT g_uShellRestart; 

g_uShellRestart = RegisterWindowsMessage(__Text(¡°TaskbarCreated¡±)); 





// Message Map ¿¡¼­ 

ON_REGISTERED_MESSAGE(g_uShellRestart, OnTrayShow) 





// ¸Þ½ÃÁö¸¦ ó¸®ÇÕ´Ï´Ù. 

LRESULT CMyDlg::OnTrayShow(WPARAM wParam, LPARAM lParam) 

{ 

    // TrayIconÀ» ´Ù½Ã º¸¿©ÁÝ´Ï´Ù. ShowTray´Â Tray¸¦ º¸¿©ÁÖ´Â ÇÔ¼öÀÔ´Ï´Ù. 

    m_Tray.ShowTray();

} 






4. ÂüÁ¶

Windows Shell Programming


- 2001.07.02 Smile Seo -