Àμö |
wParam : ½ºÅÂƽ ÄÁÆ®·ÑÀÇ DCÇÚµé. ÀÌ DC¿¡ Àü°æ»ö°ú ¹è°æ»ö µîÀ» ¼³Á¤ÇÑ´Ù. lParam : ½ºÅÂƽ ÄÁÆ®·ÑÀÇ ÇÚµé. ÇÑ À©µµ¿ì¿¡ ½ºÅÂƽÀÌ ¿©·¯ °³ ÀÖÀ» °æ¿ì ÀÌ Çڵ鰪À¸·Î ¿øÇÏ´Â ½ºÅÂƽ¸¸ »ö»óÀ» º¯°æÇÒ ¼ö ÀÖ´Ù. |
¼³¸í |
½Ã½ºÅÛÀÌ ½ºÅÂƽ ÄÁÆ®·ÑÀ» ±×¸®±â Àü¿¡ ÀÌ ¸Þ½ÃÁö¸¦ º¸³» ¹è°æ»ö»ó°ú Àü°æ»ö ¹è°æ»ö µîÀ» Áú¹®ÇÑ´Ù. DefWindowProcÀº ½Ã½ºÅÛ¿¡ Á¤ÀÇµÈ ÄÁÆ®·Ñ »ö»óÀ» ¸®ÅÏÇϵµ·Ï µÇ¾î ÀÖÀ¸¹Ç·Î ÀÌ ¸Þ½ÃÁö¸¦ ó¸®ÇÏÁö ¾ÊÀ¸¸é µðÆúÆ® »ö»óÀ¸·Î ½ºÅÂƽÀÌ ±×·ÁÁø´Ù. ºÎ¸ð À©µµ¿ì°¡ ÀÌ ¸Þ½ÃÁö¸¦ Á÷Á¢ ó¸®Çϸé wParamÀ¸·Î Àü´ÞµÇ´Â DC¿¡ Àü°æ»ö°ú ¹è°æ»öÀ» ¼³Á¤ÇÒ ¼ö ÀÖÀ¸¸ç ¹è°æ ºê·¯½Ã ÇÚµéÀ» ¸®ÅÏÇÔÀ¸·Î½á ½ºÅÂƽÀÇ ¹è°æ »ö»óÀ» º¯°æÇÒ ¼ö ÀÖ´Ù. ¹è°æ ºê·¯½Ã¸¦ º¯°æÇÏ°íÀÚ ÇÒ °æ¿ì WM_CREATE µîÀÇ ¸Þ½ÃÁö¿¡¼ ¹Ì¸® ºê·¯½Ã¸¦ ¸¸µé¾î ³õ°í ÀÌ ¸Þ½ÃÁö¿¡¼ ºê·¯½Ã ÇÚµéÀ» ¸®ÅÏÇØ ÁÖ¸é µÈ´Ù. ½Ã½ºÅÛÀº ÀÌ ¸Þ½ÃÁö¿¡¼ ¸®ÅÏÇÑ ºê·¯½Ã ÇÚµé·Î ½ºÅÂƽ ÄÁÆ®·ÑÀÇ ¹è°æÀ» ä»öÇÑ´Ù. ÀÌ ºê·¯½Ã´Â ½Ã½ºÅÛÀÌ ÀÚµ¿À¸·Î Æı«ÇØ ÁÖÁö ¾ÊÀ¸¹Ç·Î ´õ ÀÌ»ó ÇÊ¿ä°¡ ¾ø¾îÁ³À» ¶§(WM_DESTROY) ºÎ¸ð À©µµ¿ì°¡ Á÷Á¢ Æı«ÇØ ÁÖ¾î¾ß ÇÑ´Ù. Àбâ Àü¿ë ½ºÅ¸ÀÏÀ» °¡Áø ¿¡µðÆ® ÄÁÆ®·Ñ°ú »ç¿ë ±ÝÁöµÈ ¿¡µðÆ®µµ ÀÌ ¸Þ½ÃÁö¸¦ ´ë½Å ¹Þ´Â´Ù. ÀÌ ¸Þ½ÃÁö´Â °°Àº ½º·¹µå ³»¿¡¼¸¸ º¸³»Áø´Ù. |
¸®ÅÏ |
ÀÌ ¸Þ½ÃÁö¸¦ ó¸®ÇßÀ¸¸é ¹è°æ ºê·¯½ÃÀÇ ÇÚµéÀ» ¸®ÅÏÇØ ÁØ´Ù. ºê·¯½Ã Çڵ鰪Àº LRESULT·Î ij½ºÆÃµÈ ÈÄ ¸®ÅϵǾî¾ß ÇÑ´Ù. ºÎ¸ð À©µµ¿ì°¡ ´ëÈ»óÀÚ¶ó¸é BOOLÇüÀ¸·Î ij½ºÆÃÇØ¾ß ÇÑ´Ù. |
¿¹Á¦ |
´ÙÀ½ ¿¹Á¦´Â µÎ °³ÀÇ ½ºÅÂƽ ÄÁÆ®·ÑÀ» »ý¼ºÇÏ°í ±× Áß Çϳª¸¦ ÆĶõ»ö ¹è°æ¿¡ Èò»öÀ¸·Î Ãâ·ÂÇϵµ·Ï »ö»óÀ» º¯°æÇÑ´Ù. LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; static HBRUSH hBrush; static HWND hS1,hS2; TCHAR Mes[]="½ºÅÂƽ ÄÁÆ®·ÑÀÇ »ö»óÀ» º¯°æÇÕ´Ï´Ù"; switch(iMessage) { case WM_CREATE: hS1=CreateWindow("static","ºÎ¸ð À©µµ¿ì°¡ ¼³Á¤ÇÑ »ö»ó",WS_CHILD | WS_VISIBLE, 10,50,300,25,hWnd,(HMENU)0,g_hInst,NULL); hS2=CreateWindow("static","¿î¿µÃ¼Á¦ µðÆúÆ® »ö»ó",WS_CHILD | WS_VISIBLE, 10,100,300,25,hWnd,(HMENU)1,g_hInst,NULL); hBrush=CreateSolidBrush(RGB(0,0,255)); return 0; case WM_CTLCOLORSTATIC: if ((HWND)lParam==hS1) { SetTextColor((HDC)wParam,RGB(255,255,255)); SetBkColor((HDC)wParam,RGB(0,0,255)); return (LRESULT)hBrush; } break; case WM_PAINT: hdc=BeginPaint(hWnd, &ps); TextOut(hdc,10,10,Mes,lstrlen(Mes)); EndPaint(hWnd, &ps); return 0; case WM_DESTROY: DeleteObject(hBrush); PostQuitMessage(0); return 0; } return(DefWindowProc(hWnd,iMessage,wParam,lParam)); } WM_CREATE¿¡¼ ¹Ì¸® ºê·¯½Ã¸¦ »ý¼ºÇØ ³õ¾ÒÀ¸¸ç WM_CTLCOLORSTATIC¿¡¼ ÀÌ ÇÚµéÀ» ¸®ÅÏÇØ ÁÖ¾ú´Ù. ´Ü, ÀÌ ¿¹Á¦ÀÇ °æ¿ì ÇÑ À©µµ¿ì¿¡ µÎ °³ÀÇ ½ºÅÂƽÀÌ ÀÖÀ¸¹Ç·Î ¿øÇÏ´Â ½ºÅÂƽÀÇ »ö»ó¸¸ º¯°æÇϱâ À§ÇØ lParamÀ¸·Î Àü´ÞµÇ´Â À©µµ¿ì ÇÚµéÀ» ºñ±³ÇÏ¿´´Ù. WM_DESTROY¿¡¼´Â ºê·¯½Ã¸¦ Æı«ÇØ ÁÖ¾î¾ß ÇÑ´Ù. |
Ç÷§Æû |
95ÀÌ»ó |
ÂüÁ¶ |
|
written by http://www.winapi.co.kr
|