À©µµ¿ì ÇÁ·Î±×·¡¹Ö ÀÚ·á |
---|
Á¦¸ñ | [API] ¸¶¿ì½º ó¸® #2 1998/07/14 (08:56) |
À̸§ | ±èÈ¿¿ø |
¹øÈ£ | 23 |
Á¶È¸ | 362 |
º»¹® |
<< Mouse Event - Nonclient Range>> Mouse´Â 21°³ÀÇ Message¸¦ °¡Áö°í ÀÖ´Ù. ÀÌÁß 11°³´Â Ŭ¶óÀ̾ðÆ® ¿µ¿ª°ú °ü°è°¡ ¾ø´Ù. WM_NVMOUSEMOVE WM_NCLBUTTONDOWN, WM_NCLBUTTONUP, WM_NCLBUTTONDBLCLK WM_NCMBUTTONDOWN, WM_NCMBUTTONUP, WM_NCMBUTTONDBLCLK WM_NCRBUTTONDOWN, WM_NCRBUTTONUP, WM_NCRBUTTONDBLCLK wParam : ¸¶¿ì½º°¡ ¿òÁ÷À̰ųª ´·ÁÁø ºñŬ¶óÀ̾ðÆ® ¿µ¿ª HT(Hit-Test)·Î ½ÃÀÛÇÏ´Â ½Äº°ÀÚÁßÀÇ Çϳª·Î ¼³Á¤ lParam : ÇÏÀ§ ¿öµå¿¡ x, »óÀ§ ¿öµå¿¡ yÁÂÇ¥ ȸé ÀüüÀÇ ÁÂÃø »ó´ÜÀÌ (0,0) ´ÙÀ½ÀÇ µÎ°³ ÇÔ¼ö·Î ȸé ÁÂÇ¥¸¦ Ŭ¶óÀ̾ðÆ® ¿µ¿ª ÁÂÇ¥·Î º¯È¯ ScreenToClient(hwnd,pPoint); ClientToScreen(hwnd,pPoint); ÀÌµé µÎ ÇÔ¼ö´Â ¿¹ÀüÀÇ °ªÀ» º¸°üÇÏÁö ¾Ê°í POINTÇü½ÄÀÇ ±¸Á¶Ã¼ ¾È¿¡ ÀúÀåµÈ °ªÀ» º¯È¯. << WM_NCHITTEST >> 21°³ÀÇ ¸¶¿ì½º ¸Þ½ÃÁöÁß¿¡¼ ¸¶Áö¸· ¸Þ½ÃÁö. ´Ù¸¥ ¸ðµç Ŭ¶óÀ̾ðÆ® ¿µ¿ª°ú ºñŬ¶óÀ̾ðÆ® ¿µ¿ª ¸¶¿ì½º ¸Þ½ÃÁö¿¡ ¿ì¼±. lParam : ¸¶¿ì½ºÀÇ x,yÀ§Ä¡ wParam : »ç¿ëµÇÁö ¾ÊÀ½ ÀϹÝÀûÀ¸·Î À©µµ¿ìÁî ÀÛ¾÷Àº ÀÌ ¸Þ½ÃÁö¸¦ DefWindowProc¿¡ Àü´ÞÇϸç, À©µµ¿ìÁî´Â WM_NCHITTEST ¸Þ½ÃÁö¸¦ ¸¶¿ì½ºÀÇ À§Ä¡¿¡ µû¶ó ´Ù¸¥ ¸ðµç ¸¶¿ì½º ¸Þ½ÃÁö¸¦ ¸¸µå´Âµ¥ »ç¿ë. ºñŬ¶óÀ̾ðÆ® ¿µ¿ª ¸¶¿ì½º ¸Þ½ÃÁö¿¡¼ WM_NCHITTEST¸¦ ó¸®ÇÒ¶§ DefWindowProc¿¡ µÇµ¹·ÁÁø °ªÀº ¸¶¿ì½º ¸Þ½ÃÁöÀÇ wParamÀÎÀÚ°¡ µÈ´Ù. ÀÌ °ªÀº ºñŬ¶óÀ̾ðÆ® ¿µ¿ª ¸¶¿ì½º ¸Þ½ÃÁö¿¡ ´ÙÀ½ÀÇ °ªÀ» ´õÇÑ wParam °ªÀÇ ¾î¶² °ÍÀÌ µÉ ¼ö ÀÖ´Ù. HTCLIENT Ŭ¶óÀ̾ðÆ® ¿µ¿ª HTNOWHERE ¾î¶² À©µµ¿ìµµ ¾Æ´Ô HTTRANSPARENT ´Ù¸¥ À©µµ¿ì¿¡ °ãÃÄÁø À©µµ¿ì HTERROR DefWindowProc¿¡ beep ¼Ò¸®¸¦ ³ª°Ô ÇÔ DefWindowProc°¡ WM_NCHITTEST¸Þ½ÃÁö¸¦ ó¸®ÇÑ ÈÄ HTCLIENT¸¦ µÇµ¹¸°´Ù¸é, À©µµ¿ìÁî´Â ȸé ÁÂÇ¥¸¦ Ŭ¶óÀ̾ðÆ® ¿µ¿ª ÁÂÇ¥·Î º¯È¯ÇÏ°í Ŭ¶óÀ̾ðÆ® ¿µ¿ª ¸¶¿ì½º ¸Þ½ÃÁö¸¦ ¹ß»ý½ÃŲ´Ù. ¸ðµç ¸¶¿ì½º ¸Þ½ÃÁö¸¦ ¹«·ÂȽÃÅ°´Â ¹æ¹ý case WM_NCHITTEST: return (LRESULT) NTNOWHERE; << ¸¶¿ì½º Capture >> SetCapture(hwnd); ÀÌ ÇÔ¼ö È£Ãâ ÈÄ¿¡ À©µµ¿ìÁî´Â ÇÚµéÀÌ hwndÀÎ À©µµ¿ìÀÇ À©µµ¿ì ÇÁ·Î½ÃÀú¿¡ ¸ðµç ¸¶¿ì½º ¸Þ½ÃÁö¸¦ º¸³½´Ù. ¸¶¿ì½º°¡ ºñŬ¶óÀ̾ðÆ® ¿µ¿ª¿¡ ÀÖ´õ¶óµµ Ç×»ó Ŭ¶óÀ̾ðÆ® ¿µ¿ª ¸Þ½ÃÁö¸¦ º¸³½´Ù. ReleaseCapture(); ·Î Á¦°ÅÇÒ ¼ö ÀÖ´Ù. |