GetMessage

¿øÇü BOOL GetMessage(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax);
MFC ¿øÇü ÇØ´ç ÇÔ¼ö ¾øÀ½
Àμö

¢ºlpMsg : ¸Þ½ÃÁö¸¦ ¹ÞÀ» ±¸Á¶Ã¼ÀÌ¸ç ´ÙÀ½°ú °°ÀÌ ¼±¾ðµÇ¾î ÀÖ´Ù.

typedef struct tagMSG {     // msg 
    HWND   hwnd;     
    UINT   message; 
    WPARAM wParam; 
    LPARAM lParam; 
    DWORD  time; 
    POINT  pt; 
} MSG; 

¢ºhWnd : ¸Þ½ÃÁö¸¦ ¹ÞÀ» À©µµ¿ìÀ̸ç ÀÌ À©µµ¿ì·Î º¸³»Áö´Â ¸Þ½ÃÁö¸¦ Á¶»çÇÑ´Ù. ÀÌ Àμö°¡ NULLÀ̸é ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÑ ½º·¹µå·Î Àü´ÞµÈ ¸ðµç ¸Þ½ÃÁö¸¦ Á¶»çÇÑ´Ù.

¢ºwMsgFilterMin : Á¶»çÇÒ ¸Þ½ÃÁöÀÇ ÃÖ¼Ò°ª.

¢ºwMsgFilterMax : Á¶»çÇÒ ¸Þ½ÃÁöÀÇ ÃÖ´ë°ª. ÀÌ µÎ Àμö¸¦ »ç¿ëÇϸé ÀÏÁ¤ÇÑ ¹üÀ§¿¡ ¼ÓÇÑ ¸Þ½ÃÁö¸¸ Á¶»çÇÒ ¼ö Àִµ¥ À̸¦ ¸Þ½ÃÁö ÇÊÅ͸µÀ̶ó°í ÇÑ´Ù. ¿¹¸¦ µé¾î Å°º¸µå °ü·Ã ¸Þ½ÃÁö¸¸ Á¶»çÇÏ°í ½ÍÀ¸¸é WM_KEYFIRST, WM_KEYLAST·Î ¹üÀ§¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. µÎ Àμö°¡ ¸ðµÎ 0ÀÌ¸é ¸Þ½ÃÁö ÇÊÅ͸µÀ» ÇÏÁö ¾ÊÀ¸¸ç ¸ðµç ¸Þ½ÃÁö¸¦ Á¶»çÇÑ´Ù.

¸®ÅÏ

Á¶»çÇÑ ¸Þ½ÃÁö°¡ WM_QUIT ¸Þ½ÃÁöÀ̸é FALSE¸¦ ¸®ÅÏÇÏ¸ç ±× ¿ÜÀÇ ¸Þ½ÃÁöÀ̸é TRUE¸¦ ¸®ÅÏÇÑ´Ù. ÀÌ ¸®ÅÏ°ªÀº ¸Þ½ÃÁö ·çÇÁ¸¦ Å»ÃâÇϱâ À§ÇÑ ¿ëµµ·Î »ç¿ëµÇ´Âµ¥ WM_QUIT ¸Þ½ÃÁö°¡ Àü´ÞµÇ¾úÀ¸¸é ¸Þ½ÃÁö ·çÇÁ°¡ Á¾·áµÈ´Ù. ¿¡·¯ ¹ß»ý½Ã -1ÀÌ ¸®ÅϵȴÙ.

¼³¸í

È£ÃâÇÑ ½º·¹µå¿¡¼­ ¸Þ½ÃÁö¸¦ ²¨³» ù¹ø° Àμö·Î Àü´ÞµÈ lpMsg±¸Á¶Ã¼¿¡ ä¿öÁØ´Ù. ƯÁ¤ À©µµ¿ì(±× Â÷Àϵ嵵 Æ÷ÇԵȴÙ)·Î º¸³»Áö´Â ¸Þ½ÃÁö³ª PostThreadMessage ÇÔ¼ö¿¡ ÀÇÇØ ½º·¹µå·Î º¸³»Áø ¸Þ½ÃÁö¸¦ Á¶»çÇÒ ¼ö ÀÖÀ¸¸ç ƯÁ¤ÇÑ ¹üÀ§¿¡ ÀÖ´Â ¸Þ½ÃÁö¸¸ Á¶»çÇÒ ¼öµµ ÀÖ´Ù. ÀÌ ÇÔ¼ö´Â ´Ù¸¥ ½º·¹µå³ª ´Ù¸¥ ÇÁ·Î¼¼½ºÀÇ ¸Þ½ÃÁö´Â Á¶»çÇÏÁö ¸øÇÏ¸ç ¿ÀÁ÷ È£Ãâ ½º·¹µåÀÇ ¸Þ½ÃÁö¸¸ Á¶»çÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½Àº ÀüÇüÀûÀÎ ¸Þ½ÃÁö ·çÇÁÀÇ ¿¹ÀÌ´Ù.

while(GetMessage(&Message,0,0,0)) {
	TranslateMessage(&Message);
	DispatchMessage(&Message);
}
return Message.wParam;

Àüü ·çÇÁ´Â while¹®À¸·Î ½Î¿©Á® ÀÖ¾î GetMessage°¡ WM_QUIT¸¦ Á¶»çÇÒ ¶§±îÁö ¹Ýº¹µÈ´Ù. GetMessage´Â ÀÌ ½º·¹µå¿¡ ¼ÓÇÑ ¸ðµç À©µµ¿ì¿¡ ´ëÇØ ¸ðµç ¸Þ½ÃÁö¸¦ Á¶»çÇÏ¿© Message±¸Á¶Ã¼¿¡ ä¿öÁØ´Ù. ÀÌ ¸Þ½ÃÁö´Â DispatchMessage ÇÔ¼ö¿¡ ÀÇÇØ ÇØ´ç À©µµ¿ìÀÇ À©µµ¿ì ÇÁ·Î½ÃÀú·Î º¸³»Áø´Ù.

GetMessage ÇÔ¼ö´Â ½º·¹µå ¸Þ½ÃÁö Å¥¿¡¼­ ¸Þ½ÃÁö¸¦ ÀÐÀº ÈÄ ÀÌ ¸Þ½ÃÁö¸¦ Å¥¿¡¼­ Á¦°ÅÇÑ´Ù. ´Ü ¿¹¿ÜÀûÀ¸·Î WM_PAINT ¸Þ½ÃÁö´Â ÀÌ ¸Þ½ÃÁö°¡ ó¸®µÈ ÈÄ¿¡ ¸Þ½ÃÁö Å¥¿¡¼­ Á¦°ÅµÈ´Ù.

GetMessage ÇÔ¼ö´Â ¸Þ½ÃÁö Å¥¿¡ ´ë±âÁßÀÎ ¸Þ½ÃÁö°¡ ¾øÀ» °æ¿ì ¸Þ½ÃÁö°¡ Àü´ÞµÉ ¶§±îÁö ¹«ÇÑÈ÷ ´ë±âÇÑ´Ù.

Âü°íÇÔ¼ö PeekMessage
Ç÷¿Æû 95ÀÌ»ó
ÂüÁ¶  

written by http://www.winapi.co.kr