´ë±â ÁßÀÎµÈ ¸Þ½ÃÁö

½Ã½ºÅÛÀÌ ÇÑ ¹ø¿¡ À©µµ ÁîÀÇ ¾î¶² ¼ýÀÚ¸¦ Ç¥½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù. ½Ã½ºÅÛ ¸Þ½ÃÁö Å¥¸¦ »ç¿ë ÇÏ´Â ¸¶¿ì½º¿Í Å°º¸µå¸¦ ÀûÀý ÇÑ Ã¢ ÀÔ·Â °æ·Î¸¦.

½Ã½ºÅÛÀº ´ÜÀÏ ½Ã½ºÅÛ ¸Þ½ÃÁö Å¥ ¹× °¢ GUI ½º·¹µå¿¡ ´ë ÇÑ ½º·¹µå ¸Þ½ÃÁö Å¥ÀÇ ¼ö¸¦ À¯Áö. ºñ GUI ½º·¹µå¿¡ ´ë ÇÑ ¸Þ½ÃÁö Å¥¸¦ ¸¸µå´Â ¿À¹ö Çìµå¸¦ ¹æÁö ÇÏ·Á¸é ¸ðµç ½º·¹µå ¸Þ½ÃÁö Å¥ ¾øÀÌ Ã³À½ »ý¼º µË´Ï´Ù. ½º·¹µå°¡ Win32 »ç¿ëÀÚ ¶Ç´Â GDI ÇÔ¼ö Áß Çϳª¸¦ óÀ½ È£Ãâ ÇÏ´Â °æ¿ì¿¡ ½Ã½ºÅÛ ½º·¹µå ¸Þ½ÃÁö Å¥¸¦ ¸¸µì´Ï´Ù.

¶§¸¶´Ù »ç¿ëÀÚ ¸¶¿ì½º À̵¿, ¸¶¿ì½º ´ÜÃ߸¦ Ŭ¸¯ Çϰųª Å°º¸µå, ¸¶¿ì½º ÀåÄ¡ µå¶óÀ̹ö Çü½Ä ¶Ç´Â Å°º¸µå ÀÔ·Â ¸Þ½ÃÁö º¯È¯ ¹× ½Ã½ºÅÛ ¸Þ½ÃÁö Å¥¿¡ ¹èÄ¡ ÇÕ´Ï´Ù. ½Ã½ºÅÛÀº ½Ã½ºÅÛ ¸Þ½ÃÁö Å¥¿¡¼­ ¸Þ½ÃÁö¸¦ ÇÑ ¹ø¿¡ Çϳª¾¿ Á¦°Å ´ë»ó âÀ» È®ÀÎ ÇÏ·Á¸é ±×µéÀ» °Ë»ç ÇÏ °í ´ë»ó âÀ» ¸¸µç ½º·¹µåÀÇ ¸Þ½ÃÁö Å¥¿¡ °Ô½Ã. ½º·¹µå ¸Þ½ÃÁö Å¥ ½º·¹µå°¡ ¸¸µç â¿¡ ´ë ÇÑ ¸ðµç ¸¶¿ì½º ¹× Å°º¸µå ¸Þ½ÃÁö¸¦ ¹Þ½À´Ï´Ù. ½º·¹µå´Â Å¥¿¡¼­ ¸Þ½ÃÁö¸¦ Á¦°Å ÇÏ °í ±×µéÀ» º¸³¾¿¡ ´ë ÇÑ ÀûÀý ÇÑ Ã¢ ÇÁ·Î½ÃÀú¸¦ ó¸® Çϵµ·Ï ½Ã½ºÅÛ¿¡ Áö½Ã.

¿¹¿Ü´Â WM_PAINT ¸Þ½ÃÁö ½Ã½ºÅÛÀº Ç×»ó °Ô½Ã¹° ¸Þ½ÃÁö ¸Þ½ÃÁö Å¥ÀÇ ³¡¿¡. ÀÌ·¸°Ô Çϸé â ÀûÀý ÇÑ Ã³À½¿¡ first-out (FIFO) ½ÃÄö½º¿¡´Â ÀÔ·ÂµÈ ¸Þ½ÃÁö¸¦ ¹Þ½À´Ï´Ù. ±×·¯³ª WM_PAINT ¸Þ½ÃÁö¸¦ Å¥¿¡ º¸°ü ÇÏ °í Å¥ ´Ù¸¥ ¸Þ½ÃÁö¸¦ Æ÷ÇÔ ÇÏ´Â °æ¿ì¿¡ â ÇÁ·Î½ÃÀú¿¡ Àü´Þ µË´Ï´Ù. °°Àº â¿¡ ´ë ÇÑ ¿©·¯ WM_PAINT ¸Þ½ÃÁö´Â ´ÜÀÏ WM_PAINT ¸Þ½ÃÁö¸¦ ´ÜÀÏ ¿µ¿ªÀ¸·Î ÅëÇÕ Çϴ Ŭ¶óÀ̾ðÆ® ¿µ¿ª¿¡ ´ë ÇÑ ¸ðµç À߸ø µÈ ºÎºÐÀ¸·Î °áÇÕ µË´Ï´Ù. â Ŭ¶óÀ̾ðÆ® ¿µ¿ªÀÇ ³»¿ëÀ» ´Ù½Ã ÇØ¾ß Çϴ Ƚ¼ö¸¦ ÁÙ¿© WM_PAINT ¸Þ½ÃÁö¸¦ °áÇÕ ÇÏ ¿©.

½Ã½ºÅÛ ¸Þ½ÃÁö ±¸Á¶¸¦ ÀÛ¼º ÇÏ °í ¸Þ½ÃÁö Å¥¸¦ º¹»ç ÇÏ ¿© ½º·¹µåÀÇ ¸Þ½ÃÁö Å¥¿¡ ¸Þ½ÃÁö¸¦ °Ô½Ã ÇÕ´Ï´Ù. Á¤º¸ ¸Þ½ÃÁö ¿¡ Æ÷ÇÔ µË´Ï´Ù: ¸Þ½ÃÁö´Â Àǵµ, ¸Þ½ÃÁö ½Äº°ÀÚ, µÎ ¸Þ½ÃÁö ¸Å°³ º¯¼ö, ¸Þ½ÃÁö, °Ô½Ã ÇÑ ½Ã°£ â°ú ¸¶¿ì½º Ä¿¼­ À§Ä¡ ÇÚµé. ½º·¹µå postmessage ¸¦ ¶Ç´Â PostThreadMessage ÇÔ¼ö¸¦ »ç¿ë ÇÏ ¿© ÀÚü ¸Þ½ÃÁö Å¥·Î ¶Ç´Â ´Ù¸¥ ½º·¹µå°¡ Å¥¿¡ ¸Þ½ÃÁö¸¦ °Ô½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÀÀ¿ë ÇÁ·Î±×·¥ GetMessage ÇÔ¼ö¸¦ »ç¿ë ÇÏ ¿© Å¥¿¡¼­ ¸Þ½ÃÁö¸¦ Á¦°ÅÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ PeekMessage ÇÔ¼ö »ç¿ë ÇÏ ¿© Å¥¿¡¼­ Á¦°Å ÇÏÁö ¾Ê°í ¸Þ½ÃÁö¸¦ °Ë»çÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÇÔ¼ö´Â ¸Þ½ÃÁö¿¡ ´ë ÇÑ Á¤º¸ ¸Þ½ÃÁö ¸¦ ä¿ó´Ï´Ù.

Å¥¿¡¼­ ¸Þ½ÃÁö¸¦ Á¦°ÅÇÑ ÈÄ ÀÀ¿ë ÇÁ·Î±×·¥ ½Ã½ºÅÛÀÇ Ã³¸®¿¡ ´ë ÇÑ Ã¢ ÇÁ·Î½ÃÀú¿¡ °Ô ¸Þ½ÃÁö¸¦ º¸³¾ Á÷Á¢ DispatchMessage ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. DispatchMessage GetMessage ¶Ç´Â PeekMessage ÇÔ¼ö¸¦ ÀÌÀü È£Ãâ¿¡ ÀÇÇØ Ã¤¿öÁ³´Ù MSG ¸¦ Æ÷ÀÎÅ͸¦ °É¸³´Ï´Ù. DispatchMessage â ÇÁ·Î½ÃÀú¸¦ â ÇÚµé, ¸Þ½ÃÁö id ¹× µÎ ¸Þ½ÃÁö ¸Å°³ º¯¼ö¸¦ Àü´Þ ÇÏÁö¸¸ ¸Þ½ÃÁö¸¦ °Ô½Ã ÇÏ´Â ½Ã°£À» Åë°ú Çϰųª ¸¶¿ì½º Ä¿¼­ À§Ä¡ ÇÏÁö ¾Ê½À´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥Àº ¸Þ½ÃÁö¸¦ ó¸® ÇÏ´Â µ¿¾È GetMessageTime ¹× GetMessagePos ÇÔ¼ö¸¦ È£Ãâ ÇÏ ¿©ÀÌ Á¤º¸¸¦ °Ë»öÇÒ ¼ö ÀÖ½À´Ï´Ù.

½º·¹µå ¸Þ½ÃÁö Å¥ÀÇ ¸Þ½ÃÁö°¡ ¾ø´Â °æ¿ì ´Ù¸¥ ½º·¹µå¸¦ Á¦¾î Ç׺¹ WaitMessage ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÔ¼ö´Â ½º·¹µå¸¦ ÀϽà Áß´Ü ÇÏ °í »õ ¸Þ½ÃÁö ½º·¹µåÀÇ ¸Þ½ÃÁö Å¥¿¡ ¹èÄ¡ µÉ ¶§±îÁö ¹Ýȯ ÇÏÁö ¾Ê½À´Ï´Ù.

32 ºñÆ® °ªÀ» ÇöÀç ½º·¹µå ¸Þ½ÃÁö Å¥ ¿¬°áÇÒ SetMessageExtraInfo ÇÔ¼ö¸¦ È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù. GetMessage ¶Ç´Â PeekMessage ÇÔ¼ö¿¡ ÀÇÇØ °Ë»ö µÈ ¸¶Áö¸· ¸Þ½ÃÁö¿Í ¿¬°ü µÈ °ªÀ» °¡Á®¿À´Â GetMessageExtraInfo ÇÔ¼ö¸¦ È£Ãâ ÇÏ´Â ´ÙÀ½.

 

Index