Àμö |
wParam : È°¼ºÈµÈ ž ·¹º§ ºÎ¸ð À©µµ¿ìÀÇ ÇÚµéÀÌ´Ù. LOWORD(lParam) : ¸¶¿ì½º¸¦ Ŭ¸¯ÇÑ À§Ä¡ÀÎ È÷Æ® Å×½ºÆ®°ªÀÌ´Ù. ÀÛ¾÷ ¿µ¿ªÀ» Ŭ¸¯ÇßÀ¸¸é HTCLIENT°ªÀÌ Àü´ÞµÈ´Ù. HIWORD(lParam) : ÀÌ ¸Þ½ÃÁö¸¦ À¯¹ß½ÃŲ ¸¶¿ì½º ¸Þ½ÃÁöÀÇ ID°¡ Àü´ÞµÈ´Ù. ÀÌ ¸Þ½ÃÁöÀÇ ¸®ÅÏ°ª¿¡ µû¶ó ¸¶¿ì½º ¸Þ½ÃÁö´Â Å¥¿¡ ºÙ¿©Áö°Å³ª ¹ö·ÁÁø´Ù. |
||||||||||
¼³¸í |
»ç¿ëÀÚ°¡ ºñÈ°¼ºÈµÈ À©µµ¿ì¿¡¼ ¸¶¿ì½º ¹öÆ°À» ´©¸¦ ¶§ ÀÌ ¸Þ½ÃÁö°¡ Àü´ÞµÈ´Ù. ÀÌ¹Ì È°¼ºÈµÇ¾î ÀÖÀº À©µµ¿ì¿¡¼ ¸¶¿ì½º¸¦ ´©¸¦ ¶§´Â ÀÌ ¸Þ½ÃÁö°¡ Àü´ÞµÇÁö ¾Ê´Â´Ù. À©µµ¿ì´Â ÀÌ ¸Þ½ÃÁö¸¦ ¹Þ¾ÒÀ» ¶§ ÀÚ½ÅÀ» È°¼ºÈÇÒ °ÍÀÎÁö, Àü´ÞµÈ ¸¶¿ì½º ¸Þ½ÃÁö´Â ¾î¶»°Ô ó¸®ÇÒ °ÍÀÎÁö °áÁ¤ÇØ¾ß ÇÑ´Ù. À̶§ wParam°ú lParam°ªÀ» ÀÐ¾î »ç¿ëÀÚ°¡ ¾î¶² ¸¶¿ì½º ¹öÆ°À» ȸéÀÇ ¾î´À ºÎºÐ¿¡¼ ´·¶´ÂÁö¸¦ Á¶»çÇÒ ¼ö ÀÖ´Ù. DefWindowProcÀ¸·Î ÀÌ ¸Þ½ÃÁö¸¦ º¸³¾ °æ¿ì ÀÌ ¸Þ½ÃÁö´Â ºÎ¸ð À©µµ¿ì¿¡°Ô Àü´ÞµÇ¾î ºÎ¸ð À©µµ¿ì°¡ Â÷Àϵå À©µµ¿ìÀÇ È°¼ºÈ ¿©ºÎ¸¦ °áÁ¤ÇÑ´Ù. ºÎ¸ð À©µµ¿ì°¡ Â÷Àϵ带 È°¼ºÈ½ÃŲ´Ù¸é MA_NOACTIVATE(ANDEAT)¸¦ ¸®ÅÏÇÏ¿© ½Ã½ºÅÛÀÌ ´õ ÀÌ»ó ÀÌ ¸Þ½ÃÁö¸¦ ó¸®ÇÏÁö ¾Êµµ·Ï ÇØ¾ß ÇÑ´Ù. ÀÌ ¸Þ½ÃÁö¿¡ ÀÇÇØ À©µµ¿ì°¡ È°¼ºÈµÇ¸é WM_ACTIVATE(APP), WM_NCACTIVATE, WM_SETFOCUS ¸Þ½ÃÁö°¡ ¿¬¼ÓÀûÀ¸·Î Àü´ÞµÈ´Ù. ÀÌ ¸Þ½ÃÁö´Â ¸¶¿ì½º ¹öÆ° ´©¸§ µ¿ÀÛ¿¡ ´ëÇØ Æ÷Ä¿½º¸¦ ¾î¶»°Ô ó¸®ÇÒ °ÍÀΰ¡¸¦ °áÁ¤Çϱâ À§ÇØ Àü´ÞµÇ´Â °ÍÀÌ´Ù. Æ÷Ä¿½º°¡ À̵¿µÈ ÈÄ¿¡ ¹ß»ýÇÏ´Â °ÍÀÌ ¾Æ´Ï¹Ç·Î Æ÷Ä¿½º º¯È¿¡ µû¸¥ 󸮴 ÀÌ ¸Þ½ÃÁö¿¡¼ ÇÏÁö ¾Ê´Â °ÍÀÌ ¿Ç´Ù. |
||||||||||
¸®ÅÏ |
À©µµ¿ì¸¦ È°¼ºÈÇÒ °ÍÀΰ¡¿Í Àü´ÞµÈ ¸¶¿ì½º ¸Þ½ÃÁö¸¦ ¾î¶»°Ô ó¸®ÇÒ °ÍÀΰ¡¸¦ ÁöÁ¤ÇÑ´Ù.
|
||||||||||
¿¹Á¦ |
´ÙÀ½ ¿¹Á¦´Â ȸéÀÇ Æ¯Á¤ À§Ä¡¿¡ "C"¹®ÀÚ¸¦ Ãâ·ÂÇϴµ¥ ¸¶¿ì½º ¿ÞÂÊ ¹öÆ°À¸·Î ÀÌ ¹®ÀÚÀÇ À§Ä¡¸¦ ¿Å±æ ¼ö ÀÖ´Ù. ¹öÆ°À» ´©¸£´Â Áï½Ã ¹®ÀÚÀÇ À§Ä¡°¡ ¹Ù²îÁö¸¸ ´Ü ºñÈ°¼ºÈ »óÅ¿¡¼ È°¼ºÈ »óÅ·Π¹Ù²ð ¶§´Â ¸¶¿ì½º ¸Þ½ÃÁö¸¦ ó¸®ÇÏÁö ¾Ê´Â´Ù. LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; static int x,y; switch(iMessage) { case WM_MOUSEACTIVATE: return MA_ACTIVATEANDEAT; case WM_LBUTTONDOWN: x=LOWORD(lParam); y=HIWORD(lParam); InvalidateRect(hWnd,NULL,TRUE); return 0; case WM_PAINT: hdc=BeginPaint(hWnd, &ps); TextOut(hdc,x,y,"C",1); EndPaint(hWnd, &ps); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; } return(DefWindowProc(hWnd,iMessage,wParam,lParam)); } ½ÇÇàÁßÀÇ ¸ð½ÀÀº ´ÙÀ½°ú °°´Ù. WM_MOUSEACTIVATE ¸Þ½ÃÁö¸¦ ¹Þ¾ÒÀ» ¶§ À©µµ¿ì¸¦ È°¼ºÈÇϱâ´Â ÇÏÁö¸¸ ¸¶¿ì½º ¸Þ½ÃÁö¸¦ ¹ö¸²À¸·Î½á À̶§´Â WM_LBUTTONDOWN ¸Þ½ÃÁö°¡ ¹ß»ýÇÏÁö ¾Êµµ·Ï ÇÏ¿´´Ù. ºñÈ°¼ºÈ »óÅ¿¡¼ ¸¶¿ì½º ¹öÆ°À» Ŭ¸¯ÇÒ °æ¿ì´Â ÀÌ Å¬¸¯À» À©µµ¿ì È°¼ºÈ·Î¸¸ Çؼ®ÇÒ ¶§ ÀÌ·± ½ÄÀ¸·Î ó¸®ÇÑ´Ù. È°¼ºÈÇÔ°ú µ¿½Ã¿¡ ¸¶¿ì½º ¸Þ½ÃÁöµµ °°ÀÌ Ã³¸®ÇÏ·Á¸é MA_ACTIVATE¸¦ ¸®ÅÏÇÑ´Ù. ¸¶¿ì½º Ŭ¸¯À¸·Î´Â È°¼ºÈÇÏÁö ¾Êµµ·Ï ÇÏ°í ½Í´Ù¸é MA_NOACTIVATE(ANDEAT)¸¦ ¸®ÅÏÇØ ÁÖ¸é µÈ´Ù. |
||||||||||
Ç÷§Æû |
95ÀÌ»ó |
||||||||||
ÂüÁ¶ |
|
written by http://www.winapi.co.kr
|