Æ®·¹ÀÌ·Î °¡´Â ¾Ö´Ï¸ÞÀÌ¼Ç Ãâ·ÂÇϱâ

2006-07-13 ½Å¿µÁø

1. Introduction

MSN ¸Þ½ÅÀú°¡ ¼³Ä¡µÇ¾î ÀÖ´Ù¸é ¸Þ½ÅÀú¸¦ Çѹø ¿­¾îº¸ÀÚ. ¾Æ¸¶ µî·ÏµÈ Ä£±¸µéÀÇ ¸ñ·ÏÀÌ ³ª¿À´Â À©µµ¿ì°¡ È­¸é¿¡ ³ªÅ¸³¯ °ÍÀÌ´Ù. À̹ø¿¡´Â ±× À©µµ¿ìÀÇ ¿ìÃø »ó´Ü¿¡ ÀÖ´Â ´Ý±â ¹öưÀ» ´­·¯¼­ ¸Þ½ÅÀú À©µµ¿ì¸¦ ´Ý¾Æ º¸ÀÚ. ±×·³ ¾Æ¸¶µµ À©µµ¿ì°¡ »ç¶óÁö¸é¼­ ¿ìÃø ÇÏ´ÜÀÇ Æ®·¹À̷Πĸ¼Ç¹Ù°¡ »ç¶óÁö´Â ¾Ö´Ï¸ÞÀ̼ÇÀÌ Ç¥½ÃµÉ °ÍÀÌ´Ù. ¹«½¼ ¸»ÀÎÁö Àß ¸ð¸£°Ú´Ù¸é ¸Þ½ÅÀú È­¸éÀ» ¶ç¿ì°í ÃÖ¼ÒÈ­ ½ÃÄÑ º¸ÀÚ. ±×·³ ÀÛ¾÷ ¿µ¿ªÀ¸·Î ³»·Á°¡´Â ¾Ö´Ï¸ÞÀ̼ÇÀÌ Ç¥½ÃµÉ °ÍÀÌ´Ù. ´Ù½Ã Ȱ¼ºÈ­ ½ÃÄѼ­ ´Ý¾Æ º¸ÀÚ. ±×·³ ±Ý¹æ ±× µÑÀÇ Â÷À̸¦ ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù.

Æ®·¹ÀÌ·Î ³»·Á°¡´Â ¾Ö´Ï¸ÞÀ̼Ç. ¾ÆÁÖ »ç¼ÒÇÑ °ÍÀÌ´Ù. ÇÏÁö¸¸ »ç¿ëÀÚ ÀÔÀå¿¡¼­´Â ÀÌ »ç¼ÒÇÑ Çϳª°¡ ÇÁ·Î±×·¥ÀÇ ¿Ï¼ºµµ¸¦ »ìÇÇ´Â Áß¿äÇÑ Ã´µµ°¡ µÈ´Ù. ÀÚ, ±×·³ ÀÌÁ¦ Æ®·¹ÀÌ·Î ³»·Á°¡´Â ¾Ö´Ï¸ÞÀ̼ÇÀ» Ãâ·ÂÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸µµ·Ï ÇÏÀÚ.

2. DrawAnimatedRects

±¸ÇöÀÇ ÇÙ½ÉÀº DrawAnimatedRects API ´Ù. ¹ú½á À̸§¿¡¼­ ³¿»õ¸¦ dz±â°í ÀÖ´Ù. ¾Ö´Ï¸ÞÀÌ¼Ç »ç°¢ÇüÀ» ±×¸®´Â ÇÔ¼ö°Ú°Å´Ï ÁüÀÛÇß´Ù¸é Á¤´äÀÌ´Ù. ÇÔ¼ö ¿øÇü°ú ÇÔ²² »ç¿ë¹ýÀ» ¾Ë¾Æº¸µµ·Ï ÇÏÀÚ.

MSDN¿¡¼­ ¹ßÃéÇÑ ÇÔ¼öÀÇ ¿øÇüÀÌ´Ù. ÆÄ¶ó¹ÌÅÍ´Â ´ÙÀ½°ú °°Àº Àǹ̸¦ °¡Áø´Ù.

¸®ÅÏ °ªÀº ´ç¿¬È÷ ¼º°øÇϸé 0ÀÌ ¾Æ´Ñ °ªÀ», ½ÇÆÐ ½Ã¿¡ 0À» ¸®ÅÏ ÇÑ´Ù. ÀÌÁ¦ ÀÌ ÇÔ¼ö¿¡ ´ëÇØ¼­ ´ëÃæ °¨ÀÌ ÀâÈ÷¼Ì´Ù¸é »ùÇà Äڵ带 Çѹø º¸µµ·Ï ÇÏÀÚ. ¿©±â¼­ ²À Çѹø Á÷Á¢ ŸÀÌÇÎÇØ¼­ °á°ú¸¦ È®ÀÎÇØ º¸µµ·Ï ÇÏÀÚ. ¹é¹®À̺ҿ©À졧 À̶ó´Â ¿¾¸»ÀÌ ÀÖµíÀÌ, ¹é ¹ø º¸´Â °Íº¸´Ù Á÷Á¢ ŸÀÌÇÎÇØ¼­ °á°ú¸¦ È®ÀÎÇÏ´Â °ÍÀÌ ´õ¿í ±â¾ï¿¡ ¿À·¡ ³²´Â´Ù´Â °ÍÀ» ¸í½ÉÇÏÀÚ.

½±´Ù. À©µµ¿ì ¿µ¿ªÀ» ±¸Çؼ­ 100, 100¸¸Å­ ¿À¸¥ÂÊ ¾Æ·¡ ÀÖ´Â »ç°¢ÇüÀ¸·Î À̵¿ÇÏ´Â ¾Ö´Ï¸ÞÀ̼ÇÀ» Ãâ·ÂÇÏ´Â °ÍÀÌ´Ù. ½ÇÇàÇØ ºÃ´Ù¸é ¾Æ! ÇÏ°í ´À²¼À» °ÍÀÌ´Ù.

3. Æ®·¹ÀÌ´Â ¾îµð¿¡?

2Àå±îÁö Àаí´Â ÀÌÁ¦ °ÔÀÓ ³¡... ÇÏ°í µ¤À¸½Ã·Á´Â ºÐµéÀÌ ÀÖÀ» °Í °°´Ù. ÇÏÁö¸¸ ÇѰ¡Áö ¹®Á¦°¡ ´õ ³²¾Æ ÀÖ´Ù. ¾îµð¼­ ¾îµð·Î °¡´Â ¾Ö´Ï¸ÞÀ̼ÇÀ» Ãâ·ÂÇϴ°¡? ¶ó´Â ¹®Á¦´Ù. Ãâ¹ß ÁöÁ¡Àº ´ç¿¬È÷ À©µµ¿ìÀÇ ¿µ¿ªÀÌ µÉ °ÍÀ̰í, Á¾·á ÁöÁ¡Àº Æ®·¹ÀÌ ¿µ¿ªÀÌ µÉ °ÍÀÌ´Ù. ÀÌÁ¦ Æ®·¹ÀÌ ¿µ¿ªÀ» ±¸ÇÏ´Â ¹æ¹ý¸¸ ¾Ë¸é ÁøÂ¥ °ÔÀÓÀÌ ³¡³ª´Â °Å´Ù.

Æ®·¹ÀÌ ¿µ¿ªÀ» ã±â À§Çؼ­ À©µµ¿ì ±¸Á¶¸¦ Á¶±Ý Á¶»çÇÒ Çʿ䰡 ÀÖ´Ù. ÀÌ·² ¶§ °­·ÂÇÑ ÈûÀ» ¹ßÈÖÇÒ ¼ö ÀÖ´Â SPY++À» ½ÇÇàÇØº¸ÀÚ. ±×¸®°í Á÷Á¢ Çѹø Æ®·¹À̸¦ ã¾Æ º¸ÀÚ. ¾ÆÁ÷ SPY++ÀÇ »ç¿ë¹ýÀ» ¸ð¸¥´Ù¸é Áö±Ý ´çÀå ¹è¿ï Çʿ䰡 ÀÖ´Ù. À©µµ¿ì °³¹ßÀ» ÇÔ¿¡ ÀÖ¾î VC++¿¡ Æ÷ÇÔµÈ Depends¿Í SPY++Àº ¾ÆÁÖ À¯¿ëÇÑ µµ±¸´Ù. ½Ã°£ÀÌ ³¯ ¶§ ²À »ç¿ë¹ýÀ» ÀÍÇô ³õµµ·Ï ÇÏÀÚ.

¹ß°ßÇÑ Æ®·¹ÀÌ À©µµ¿ì ±¸Á¶´Â ¿ÞÂʰú °°´Ù. Àüü¸¦ µÑ·¯½Î°í ÀÖ´Â Å« ÆÄ¶õ »ç°¢ÇüÀÇ À©µµ¿ì Ŭ·¡½º ¸íÀº "Shell_TrayWnd"´Ù. ±× ¾ÈÀ» µÑ·¯½Î°í ÀÖ´Â »¡°£ »ç°¢Çü À©µµ¿ìÀÇ Å¬·¡½º ¸íÀº "TrayNotifyWnd"´Ù. ³¡À¸·Î ±× ¾È¿¡ µé¾îÀÖ´Â º¸¶ó»ö À©µµ¿ìÀÇ Å¬·¡½º ¸íÀº "ToolbarWindow32"´Ù. ¸ðµÎ À©µµ¿ì ¸íÀº ¾ø´Ù. ±×·¯³ª ³¡¿¡ ãÀº º¸¶ó»ö À©µµ¿ìÀÇ °æ¿ì 9x °è¿­¿¡¼­´Â ¾ø´Ù. 2000ÀÌ»óÀÇ ¹öÀüºÎÅÍ Åø ¹Ù À©µµ¿ì°¡ »ý°å´Ù. XPºÎÅÍ´Â Pager¶õ ³ð±îÁö »ý°å´Ù. ÇÏ¿©Æ° ¿©±â¼­ Áß¿äÇÑ Á¡Àº Shell_TrayWnd¿Í TrayNotifyWnd´Â ¿î¿µÃ¼Á¦¿¡ »ó°ü¾øÀÌ °øÅëµÈ ¼Ó¼ºÀ̶ó´Â Á¡ÀÌ´Ù.

±×·³ ÀÌÁ¦ À©µµ¿ì¸¸ ãÀ¸¸é µÈ´Ù~ À©µµ¿ì¸¦ ã´Â °Ç ³Ê¹«³ª ½±´Ù. ÈǸ¢ÇÑ FindWindow API¸¦ »ç¿ëÇÏ¸é µÈ´Ù. TrayNotifyWnd¸¦ ã´Â FindWindow ÄÚµå´Â ¾Æ·¡¿Í °°´Ù.

°£´ÜÇÏ°Ô ¼³¸íÇϸé ù° ÁÙ¿¡¼­ Shell_TrayWnd¸¦ ã°í, ±× ´ÙÀ½ ÁÙ¿¡¼­ ShellTrayWndÀÇ ÀÚ½Ä Áß¿¡ TrayNotifyWnd¸¦ ã´Â ÄÚµå´Ù.

4. ¸ðµÎ ÇÕÃĺÁ~

ÀÌÁ¦ µåµð¾î 2,3Àå¿¡ °ÉÃļ­ ¹è¿ü´ø Áö½ÄÀ» Ȱ¿ëÇØ¼­ Æ®·¹ÀÌ·Î °¡´Â ¾Ö´Ï¸ÞÀ̼ÇÀ» Ãâ·ÂÇÏ´Â ÇÔ¼ö¸¦ ÀÛ¼ºÇØ º¸µµ·Ï ÇÏÀÚ. ¾Æ·¡¿¡ »ùÇ÷ΠÀÛ¼ºÇصРÇÔ¼ö°¡ ÀÖ´Ù.

ù ¹øÂ° ÀÎÀÚ´Â À©µµ¿ì ÇÚµéÀ», µÎ ¹øÂ° ÀÎÀÚ´Â TRUE¸¦ ³ÖÀ» °æ¿ì Æ®·¹ÀÌ·Î ³»·Á°¡´Â ¾Ö´Ï¸ÞÀ̼ÇÀ», FALSE¸¦ ³ÖÀ» °æ¿ì Æ®·¹ÀÌ¿¡¼­ º»·¡ À©µµ¿ì·Î µ¹¾Æ¿À´Â ¾Ö´Ï¸ÞÀ̼ÇÀ» Ãâ·ÂÇÑ´Ù.