¶§¶§·Î, ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼ ½º·¹µåÀÇ ¸Þ½ÃÁö ·çÇÁ ¿ÜºÎ¿¡¼ ½º·¹µå ¸Þ½ÃÁö Å¥ÀÇ ³»¿ëÀ» °Ë»ç ÇØ¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ Ã¢ ÇÁ·Î½ÃÀú ±ä ±×¸®±â ÀÛ¾÷À» ¼öÇà ÇÏ´Â °æ¿ì »ç¿ëÀÚ°¡ ÀÛ¾÷À» ÀÎÅÍ·´Æ® ¼ö¸¦ ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ ¸¶¿ì½º ¹× Űº¸µå ¸Þ½ÃÁö¿¡ ´ëÇØ ÀÛ¾÷ ÇÏ´Â µ¿¾È ¸Þ½ÃÁö Å¥¸¦ ÁÖ±âÀûÀ¸·Î °Ë»ç, ÇÏÁö ¾Ê´Â ÇÑ »ç¿ëÀÚ´Â ÀÛ¾÷ÀÌ ¿Ï·á µÈ ÈÄ ¶§±îÁö ÀԷ¿¡ ÀÀ´ä ÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ ´ë ÇÑ ÀÌÀ¯´Â â ÇÁ·Î½ÃÀú¿¡¼ ¸Þ½ÃÁö¸¦ ó¸® ¿Ï·á µÉ ¶§±îÁö ½º·¹µåÀÇ ¸Þ½ÃÁö ·çÇÁ¿¡¼ DispatchMessage ÇÔ¼ö ¹Ýȯ ÇÏÁö ¾Ê½À´Ï´Ù.
PeekMessage ÇÔ¼ö¸¦ »ç¿ë ÇÏ ¿© ±ä ÀÛ¾÷À» ÇÏ´Â µ¿¾È ¸Þ½ÃÁö Å¥ °Ë»ç ¼ö ÀÖ½À´Ï´Ù. GetMessage ÇÔ¼ö; PeekMessage ºñ½ÁÇÕ´Ï´Ù. µÎ ÇÊÅÍ ±âÁذú ÀÏÄ¡ ÇÏ´Â ¸Þ½ÃÁö¿¡ ´ë ÇÑ ¸Þ½ÃÁö Å¥¸¦ È®ÀÎ ÇÏ °í ¸Þ½ÃÁö ±¸Á¶¿¡ ¸Þ½ÃÁö¸¦ º¹»ç. µÎ ÇÔ¼ö »çÀÌÀÇ ÁÖ¿ä Â÷ÀÌÁ¡Àº ±× GetMessage ¹Ýȯ ÇÏÁö ¾Ê´Â ÇÊÅÍ Á¶°Ç°ú ÀÏÄ¡ ÇÏ´Â ¸Þ½ÃÁö Å¥¿¡ ¹èÄ¡ µÉ ¶§±îÁö PeekMessage ¸Þ½ÃÁö Å¥¿¡ ¿©ºÎ¿¡ °ü°è ¾øÀÌ Áï½Ã ¹Ýȯ ÇÏ´Â ¹Ý¸é.
´ÙÀ½ ¿¹Á¦¿¡¼´Â PeekMessage »ç¿ë ÇÏ ¿© ½Ã°£ÀÌ ¿À·¡ °É¸®´Â ÀÛ¾÷ ÇÏ´Â µ¿¾È ¸¶¿ì½º Ŭ¸¯°ú Űº¸µå ÀԷ¿¡ ´ë ÇÑ ¸Þ½ÃÁö Å¥¸¦ °Ë»ç ÇÏ´Â ¹æ¹ýÀ» º¸¿© ÁÝ´Ï´Ù.
HWND hwnd;
BOOL fDone;
MSG ¸Þ½ÃÁö;
/ / ÀÛ¾÷À» ½ÃÀÛ ÇÏ °í ¿Ï·á µÉ ¶§±îÁö °è¼Ó / / ¶Ç´Â »ç¿ëÀÚ ¸¶¿ì½º Ŭ¸¯ ¶Ç´Â ۸¦ ´©¸¦ ¶§±îÁö.
fDone = F&ALSE;
µ¿¾È (! fDone) {fDone = DoLengthyOperation(); / / ÀÀ¿ë ÇÁ·Î±×·¥ Á¤ÀÇ ÇÔ¼ö / / Å¥¿¡ ÀÖÀ» ¼ö ÀÖ´Â ¸ðµç ¸Þ½ÃÁö¸¦ Á¦°Å ÇÕ´Ï´Ù. °æ¿ì ÇØ´ç / ¸ðµç ¸¶¿ì½º ¶Ç´Â Űº¸µå¸¦ Æ÷ÇÔ Çϴ ť / / / ¸Þ½ÃÁö ÀÛ¾÷ ³¡.
(PeekMessage (amp; msg, hwnd, 0, 0, PM_REMOVE)) µ¿¾È {switch(msg.message) {WM_LBUTTONDOWN °æ¿ì: WM_RBUTTONDOWN °æ¿ì: WM_KEYDOWN »ç·Ê: / / / / ÇÊ¿äÇÑ Á¤¸®¸¦ ¼öÇà ÇÕ´Ï´Ù.
/ / fDone = TRUE;
}
}
}
GetInputState, GetQueueStatus µîÀÇ ´Ù¸¥ ÇÔ¼ö¸¦ »ç¿ë ÇÏ¸é ½º·¹µå ¸Þ½ÃÁö Å¥ÀÇ ³»¿ëÀ» °Ë»çÇÒ ¼ö ÀÖ½À´Ï´Ù. GetQueueStatus ; Å¥¿¡ ÀÖ´Â ¸Þ½ÃÁöÀÇ Á¾·ù¸¦ ³ªÅ¸³»´Â Ç÷¡±×ÀÇ ¹è¿À» ¹ÝȯÇÕ´Ï´Ù ±×°ÍÀ» »ç¿ë ÇÏ ¿© ¸Þ½ÃÁö Å¥¿¡ Æ÷ÇÔ µÇ¾î ÀÖ´ÂÁö ¿©ºÎ¸¦ ¹ß°ß ÇÏ´Â °¡Àå ºü¸¥ ¹æ¹ýÀÔ´Ï´Ù. GetInputState Å¥ ¸¶¿ì½º ¶Ç´Â Űº¸µå ¸Þ½ÃÁö¸¦ Æ÷ÇÔ ÇÏ´Â °æ¿ì TRUE¸¦ ¹Ýȯ ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ÇÔ¼ö Áß µÎ Å¥¿¡ ¸Þ½ÃÁö¸¦ ó¸® ÇÏ´Â µ¥ ÇÊ¿äÇÑÀÌ Æ÷ÇÔ µÇ¾î ÀÖ´ÂÁö ¿©ºÎ¸¦ È®ÀÎ ÇÏ´Â.