Àμö |
wParam, lParam ¸ðµÎ Àǹ̰¡ Á¤ÇØÁ® ÀÖÁö ¾Ê´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ Àǹ̸¦ Á¤Çؼ »ç¿ëÇÒ ¼ö ÀÖ´Ù. |
||||||||||||
¼³¸í |
ÀÌ ¸Þ½ÃÁö´Â ½ÇÁ¦·Î Á¤ÀǵǾî ÀÖ´Â ½Ã½ºÅÛ ¸Þ½ÃÁö°¡ ¾Æ´Ï¸ç »ç¿ëÀÚ Á¤ÀÇ ¸Þ½ÃÁöÀÇ ½ÃÀÛ ¹üÀ§¸¦ ÁöÁ¤ÇÏ´Â »ó¼ö°ªÀÌ´Ù. ¸Þ½ÃÁö´Â Á¤¼ö°ª Çϳª·Î Ç¥ÇöµÇ´Âµ¥ À©µµ¿ìÁî´Â ¸Þ½ÃÁöÀÇ ¹üÀ§¸¦ ´ÙÀ½°ú °°ÀÌ Á¤ÀÇÇϰí ÀÖ´Ù.
WM_USER´Â ÇÑ À©µµ¿ì Ŭ·¡½º¸¦ À§ÇÑ °íÀ¯ÀÇ ¸Þ½ÃÁö¸¦ Á¤ÀÇÇϱâ À§ÇÑ »ó¼ö°ªÀ̸ç ÀÌ ¹üÀ§ ÀÌÈĺÎÅÍ À©µµ¿ì Ŭ·¡½ºÀÇ »ç¿ëÀÚ Á¤ÀÇ ¸Þ½ÃÁö¸¦ ¸¸µé ¼ö ÀÖ´Ù. ÀÌ °ªÀº 0x400À¸·Î Á¤ÀǵǾî ÀÖÀ¸¸ç º¸Åë WM_USER+nÀ¸·Î »ç¿ëÀÚ Á¤ÀÇ ¸Þ½ÃÁö¸¦ Á¤ÀÇÇÑ´Ù. À̶§ nÀº 1º¸´Ù Å« Á¤¼öÀÌ¸ç »ç¿ëÀÚ Á¤ÀÇ ¸Þ½ÃÁö°£ÀÇ ±¸ºÐÀ» À§ÇØ »ç¿ëµÈ´Ù. ¿©·¯ °³ÀÇ »ç¿ëÀÚ Á¤ÀÇ ¸Þ½ÃÁö°¡ ÇÊ¿äÇÏ´Ù¸é WM_USER+1, WM_USER+2, WM_USER+3,... ½ÄÀ¸·Î °è¼Ó nÀ» Áõ°¡½ÃÄÑ °¡¸ç ¸Þ½ÃÁö¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. À©µµ¿ìÁî´Â WM_USERÀÌÈÄ 0x8000±îÁö »ç¿ëÀÚ Á¤ÀÇ ¸Þ½ÃÁö ¿µ¿ªÀ¸·Î Á¤ÀÇÇϰí ÀÖÀ¸¹Ç·Î nÀº ÃÖ´ë 0x7c00±îÁö °¡´ÉÇÏ´Ù. WM_USER+nÀ» °ð¹Ù·Î »ç¿ëÇÒ ¼öµµ ÀÖÀ¸¸ç ÀÚÁÖ »ç¿ëÇÒ °æ¿ì ´ÙÀ½°ú °°ÀÌ ¸ÅÅ©·Î¸¦ Á¤ÀÇÇÏ¿© º°µµÀÇ ¸Þ½ÃÁö¸¦ ¸¸µé ¼ö ÀÖ´Ù. #define WM_MYMESSAGE WM_USER+1 ÀÌ·¸°Ô ¸ÅÅ©·Î¸¦ Á¤ÀÇÇØ ³õ°í ÀÌÈĺÎÅÍ WM_MYMESSAGE¶ó´Â ¸íĪÀ» ´ë½Å »ç¿ëÇÏ¸é µÈ´Ù. Ç¥ÁØ ÄÁÆ®·Ñ Áß ÀϺδ ÀڽŸ¸ÀÇ »ç¿ëÀÚ Á¤ÀÇ ¸Þ½ÃÁö¸¦ Á¤ÀÇÇÏ¿© »ç¿ëÇϰí ÀÖ´Ù. µû¶ó¼ WM_USER+nÀº °¡±ÞÀûÀ̸é ÇÑ À©µµ¿ì Ŭ·¡½º³»¿¡¼¸¸ Á¤ÀÇÇÏ¿© »ç¿ëÇØ¾ß Çϸç ÀÀ¿ë ÇÁ·Î±×·¥°£ÀÇ Åë½Å¿¡´Â »ç¿ëÇÏÁö ¾Ê´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù. Ç¥ÁØ ÄÁÆ®·ÑÀ» ¼ºêŬ·¡½ÌÇßÀ» °æ¿ì ÇԺηΠWM_USER+nÀ» »ç¿ëÇϸé Ç¥ÁØ ÄÁÆ®·Ñ °íÀ¯ÀÇ ¸Þ½ÃÁö¿Í Ãæµ¹ÀÌ ¹ß»ýÇÒ ¼ö ÀÖ´Ù. |
||||||||||||
¸®ÅÏ |
¸®ÅϰªÀÇ Àǹ̴ Á¤ÇØÁ® ÀÖ´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ Àǹ̸¦ Á¤Çؼ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ ¸Þ½ÃÁö·Î ¾î¶² Áú¹®À» ÇϰíÀÚÇÒ ¶§´Â ¸®ÅϰªÀ» Á¤ÀÇÇÏ¸ç ±×·¸Áö ¾ÊÀ» °æ¿ì´Â Åë»ó ¸®ÅϰªÀ» »ç¿ëÇÏÁö ¾Ê´Â´Ù. |
||||||||||||
¿¹Á¦ |
´ÙÀ½ ¿¹Á¦´Â »ç¿ëÀÚ Á¤ÀÇ ¸Þ½ÃÁö·Î À©µµ¿ì¸¦ À̵¿½ÃŲ´Ù. LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; RECT wrt; TCHAR Mes[]="¿ÞÂÊ ¸¶¿ì½º ¹öưÀ» ´©¸£¸é À̵¿ÇÕ´Ï´Ù"; switch(iMessage) { case WM_USER+1: GetWindowRect(hWnd,&wrt); wrt.left+=wParam; wrt.right+=wParam; wrt.top+=lParam; wrt.bottom+=lParam; MoveWindow(hWnd,wrt.left,wrt.top,wrt.right-wrt.left,wrt.bottom-wrt.top,TRUE); return 0; case WM_LBUTTONDOWN: SendMessage(hWnd,WM_USER+1,(WPARAM)-3,(LPARAM)5); return 0; case WM_PAINT: hdc=BeginPaint(hWnd, &ps); TextOut(hdc,10,10,Mes,lstrlen(Mes)); EndPaint(hWnd, &ps); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; } return(DefWindowProc(hWnd,iMessage,wParam,lParam)); } ÀÌ ¿¹Á¦¿¡¼ WM_USER+1Àº À©µµ¿ì¸¦ À̵¿Ç϶ó´Â ¶æÀ̸ç wParamÀº ¼öÆò À̵¿ °Å¸®, lParamÀº ¼öÁ÷ À̵¿ °Å¸®·Î Á¤ÀÇÇÏ¿´´Ù. WM_USER+1À» ¹ÞÀ¸¸é ÀÌ ÀμöµéÀÌ ÁöÁ¤ÇÏ´Â °Å¸®¸¸Å À©µµ¿ì¸¦ À̵¿½ÃŲ´Ù. |
||||||||||||
Ç÷§Æû |
95ÀÌ»ó |
||||||||||||
ÂüÁ¶ |
WM_APP |
written by http://www.winapi.co.kr
|