Àμö |
LOWORD(wParam) : ÅëÁö ¸Þ½ÃÁö¸¦ º¸³½ Ç׸ñÀÇ IDÀÌ´Ù. ¸Þ´ºÀÇ ID, ¾×¼¿·¯·¹ÀÌÅÍÀÇ ID ¶Ç´Â ÄÁÆ®·ÑÀÇ ID°¡ Àü´ÞµÈ´Ù. HIWORD(wParam) : ÄÁÆ®·ÑÀÌ ÀÌ ¸Þ½ÃÁö¸¦ º¸³¾ ¶§´Â ÅëÁö Äڵ尡 Àü´ÞµÈ´Ù. ÅëÁö ÄÚµåÀÇ Á¾·ù´Â ¿¡µðÆ®, ¸®½ºÆ® ¹Ú½º µîÀÇ ÄÁÆ®·Ñ¿¡ µû¶ó ´Ù¾çÇÏ´Ù. ¸Þ´º Ç׸ñÀÌ ¼±ÅÃµÈ °æ¿ì ÀÌ °ªÀº 0ÀÌ¸ç ¾×¼¿·¯·¹ÀÌÅͰ¡ ¼±ÅÃµÈ °æ¿ì ÀÌ °ªÀº 1ÀÌ´Ù. lParam : ÅëÁö ¸Þ½ÃÁö¸¦ º¸³½ ÄÁÆ®·ÑÀÇ À©µµ¿ì ÇÚµéÀÌ Àü´ÞµÈ´Ù. ¸Þ´º³ª ¾×¼¿·¯·¹ÀÌÅͷκÎÅÍ ÀÌ ¸Þ½ÃÁö°¡ Àü´ÞµÈ °æ¿ì ÀÌ °ªÀº NULLÀÌ´Ù. |
¼³¸í |
¸Þ´º, ¾×¼¿·¯·¹ÀÌÅ͸¦ ¼±ÅÃÇßÀ» ¶§ ÀÌ ¸Þ½ÃÁö°¡ Àü´ÞµÇ¸ç Â÷Àϵå ÄÁÆ®·ÑÀÌ ºÎ¸ð À©µµ¿ì·Î ÅëÁö ¸Þ½ÃÁö¸¦ Àü´ÞÇÒ ¶§µµ ÀÌ ¸Þ½ÃÁö ÇüÅ·ΠÀü´ÞµÈ´Ù. °¢Á¾ ÄÁÆ®·Ñ·ÎºÎÅÍ °ªÀÌ Àü´ÞµÇ¸ç ¶ÇÇÑ °¢ ÄÁÆ®·ÑÀº ´Ù¾çÇÑ ÅëÁö ¸Þ½ÃÁö¸¦ º¸³»¹Ç·Î ÀÌ ¸Þ½ÃÁö´Â ÀϹÝÀûÀ¸·Î ´ÙÀ½°ú °°Àº ÀÌÁß switch¹®À¸·Î ÀÛ¼ºµÈ´Ù. switch (LOWORD(wParam)) { case ID: switch (HIWORD(wParam)) case code: ........ ÄÁÆ®·Ñ(¶Ç´Â ¸Þ´º Ç׸ñÀÇ ID)¿¡ µû¶ó ¸ÕÀú ºÐ±â¸¦ Çϰí ÅëÁö ¸Þ½ÃÁö º°·Î ´Ù½Ã ºÐ±â¸¦ ÇÑ´Ù. ¸Þ´º¿Í ¾×¼¿·¯·¹ÀÌÅÍ´Â º¸Åë °°Àº ¸í·É¿¡ ´ëÇØ °°Àº ID·Î ÇѽÖÀÌ Á¤ÀÇµÇ¸ç µÑ Áß ¾î¶² Ç׸ñÀ» ¼±ÅÃÇÏ´õ¶óµµ ÇÁ·Î±×·¥ÀÇ µ¿ÀÛÀº µ¿ÀÏÇÏ´Ù. ±×·¯³ª ¸¸¾à ÀÌ µÑÀ» ±»ÀÌ ±¸ºÐÇÏ·Á¸é HIWORD(wParam)°ªÀ» ÂüÁ¶ÇÏ¸é µÈ´Ù. ¸Þ´º Ç׸ñ°ú ´ëÀÀµÇ´Â ¾×¼¿·¯·¹ÀÌÅÍ´Â À©µµ¿ì°¡ ÃÖ¼ÒȵǾî ÀÖÀ» ¶§´Â »ç¿ë ±ÝÁöµÇÁö¸¸ ¸Þ´º Ç׸ñ°ú ¹«°üÇÏ°Ô ´Üµ¶À¸·Î Á¤ÀÇµÈ ¾×¼¿·¯·¹ÀÌÅÍ´Â ÃÖ¼ÒÈ »óÅ¿¡¼µµ Àü´ÞµÈ´Ù. |
¸®ÅÏ |
ÀÌ ¸Þ½ÃÁö¸¦ ó¸®ÇßÀ¸¸é 0À» ¸®ÅÏÇÑ´Ù. |
¿¹Á¦ |
´ÙÀ½ ¿¹Á¦´Â ¸Þ´º, ¾×¼¿·¯·¹ÀÌÅÍ, ¿¡µðÆ® ÄÁÆ®·Ñ·ÎºÎÅÍ Àü´ÞµÇ´Â ÅëÁö ¸Þ½ÃÁö¸¦ WM_COMMAND ¸Þ½ÃÁö·Î ó¸®ÇÑ´Ù. HWND hEdit; #define ID_EDIT 0 LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam) { char buf[128]; switch(iMessage) { case WM_CREATE: hEdit=CreateWindow("edit",NULL,WS_CHILD | WS_VISIBLE | WS_BORDER, 10,10,200,25,hWnd,(HMENU)ID_EDIT,g_hInst,NULL); return 0; case WM_COMMAND: switch(LOWORD(wParam)) { case IDM_ITEM1: if (HIWORD(wParam) == 0) { MessageBox(hWnd,"ù¹øÂ° ¸Þ´º Ç׸ñ ¼±ÅÃ","¾Ë¸²",MB_OK); } else { MessageBox(hWnd,"ù¹øÂ° ¾×¼¿·¯·¹ÀÌÅÍ ¼±ÅÃ","¾Ë¸²",MB_OK); } break; case IDM_ITEM2: MessageBox(hWnd,"µÎ¹øÂ° ¸Þ´º Ç׸ñ ¼±ÅÃ","¾Ë¸²",MB_OK); break; case IDM_ITEM3: MessageBox(hWnd,"¾×¼¿·¯·¹ÀÌÅÍ ¼±ÅÃ","¾Ë¸²",MB_OK); break; case IDM_EXIT: DestroyWindow(hWnd); break; case ID_EDIT: switch(HIWORD(wParam)) { case EN_CHANGE: GetWindowText((HWND)lParam,buf,128); SetWindowText(hWnd,buf); break; } break; } return 0; case WM_DESTROY: PostQuitMessage(0); return 0; } return(DefWindowProc(hWnd,iMessage,wParam,lParam)); } IDM_ITEM1, IDM_ITEM2´Â ¸Þ´º¿Í ¾×¼¿·¯·¹ÀÌÅÍ¿¡ ¸ðµÎ Á¤ÀǵǾî ÀÖÀ¸¹Ç·Î ¸Þ´º Ç׸ñÀ» ¼±ÅÃÇØ¼ ¸í·ÉÀ» ³»¸± ¼öµµ ÀÖ°í ¾×¼¿·¯·¹ÀÌÅÍ(Ctrl+1, Ctrl+2)¸¦ ¼±ÅÃÇØ¼ ¸í·ÉÀ» ³»¸± ¼öµµ ÀÖ´Ù. À̶§ ±»ÀÌ ¾î¶² Ç׸ñÀ¸·ÎºÎÅÍ ¸í·ÉÀÌ Àü´ÞµÇ¾ú´ÂÁö¸¦ ±¸ºÐÇϰíÀÚ ÇÑ´Ù¸é HIWORD(wParam)°ªÀ¸·ÎºÎÅÍ Á¶»çÇÒ ¼ö ÀÖÀ¸´Ù. IDM_ITEM1 Ç׸ñÀº ¾×¼¿·¯·¹ÀÌÅ͸¦ ¼±ÅÃÇÑ °æ¿ì¿Í ¸Þ´º¸¦ ¼±ÅÃÇÑ °æ¿ì °¢°¢ ´Ù¸¥ ¸Þ½ÃÁö¸¦ º¸¿©ÁÖµµ·Ï ÇÏ¿´À¸¸ç IDM_ITEM2Ç׸ñÀº Ç×»ó °°Àº ¸Þ½ÃÁö¸¦ º¸¿©ÁØ´Ù. IDM_ITEM3Àº ¸Þ´º¿¡´Â Á¤ÀǵǾî ÀÖÁö ¾Ê°í ¾×¼¿·¯·¹ÀÌÅÍ¿¡¸¸ Á¤ÀǵǾî ÀÖÀ¸¹Ç·Î ¾×¼¿·¯·¹ÀÌÅͷθ¸ ¸í·ÉÀ» ³»¸± ¼ö ÀÖ´Ù. ÀÌ ¸í·ÉÀº ¸Þ´º Ç׸ñ°ú ´ëÀÀµÇ¾î ÀÖÁö ¾ÊÀ¸¹Ç·Î À©µµ¿ì°¡ ÃÖ¼ÒȵǾî À־ ¸í·ÉÀ» ³»¸± ¼ö ÀÖ´Ù. ID_EDITÄÁÆ®·ÑÀº Àڽſ¡°Ô º¯È°¡ ÀÖÀ» ¶§ ºÎ¸ð À©µµ¿ì¿¡°Ô WM_COMMAND ¸Þ½ÃÁö·Î ÅëÁö ¸Þ½ÃÁö¸¦ º¸³»´Âµ¥ À̶§ ¾î¶² ÀÌÀ¯·Î ÅëÁö ¸Þ½ÃÁö¸¦ º¸³Â´ÂÁö´Â HIWORD(wParam)À¸·Î Àü´ÞµÇ´Â ÅëÁö Äڵ带 º¸¸é ¾Ë ¼ö ÀÖ´Ù. ÀÌ ¿¹Á¦ÀÇ °æ¿ì ¿¡µðÆ®ÀÇ ÅØ½ºÆ®°¡ º¯°æµÇ¸é ¸ÞÀÎ À©µµ¿ìÀÇ Å¸ÀÌÆ² ¹Ù ĸ¼Çµµ º¯°æÇϵµ·Ï ÇÏ¿´´Ù. |
Ç÷§Æû |
95ÀÌ»ó |
ÂüÁ¶ |
|
written by http://www.winapi.co.kr
|