| Àμö |
wParam : ¿¡µðÆ® ÄÁÆ®·ÑÀÇ DCÇÚµé. ÀÌ DC¿¡ Àü°æ»ö°ú ¹è°æ»ö µîÀ» ¼³Á¤ÇÑ´Ù. lParam : ¿¡µðÆ® ÄÁÆ®·ÑÀÇ ÇÚµé. ÇÑ À©µµ¿ì¿¡ ¿¡µðÆ®°¡ ¿©·¯ °³ ÀÖÀ» °æ¿ì ÀÌ Çڵ鰪À¸·Î ¿øÇÏ´Â ¿¡µðÆ®¸¸ »ö»óÀ» º¯°æÇÒ ¼ö ÀÖ´Ù. |
| ¼³¸í |
½Ã½ºÅÛÀÌ ¿¡µðÆ® ÄÁÆ®·ÑÀ» ±×¸®±â Àü¿¡ ÀÌ ¸Þ½ÃÁö¸¦ º¸³» ¹è°æ»ö»ó°ú Àü°æ»ö ¹è°æ»ö µîÀ» Áú¹®ÇÑ´Ù. DefWindowProcÀº ½Ã½ºÅÛ¿¡ Á¤ÀÇµÈ ÄÁÆ®·Ñ »ö»óÀ» ¸®ÅÏÇϵµ·Ï µÇ¾î ÀÖÀ¸¹Ç·Î ÀÌ ¸Þ½ÃÁö¸¦ ó¸®ÇÏÁö ¾ÊÀ¸¸é µðÆúÆ® »ö»óÀ¸·Î ¿¡µðÆ®°¡ ±×·ÁÁø´Ù. ºÎ¸ð À©µµ¿ì°¡ ÀÌ ¸Þ½ÃÁö¸¦ Á÷Á¢ ó¸®Çϸé wParamÀ¸·Î Àü´ÞµÇ´Â DC¿¡ Àü°æ»ö°ú ¹è°æ»öÀ» ¼³Á¤ÇÒ ¼ö ÀÖÀ¸¸ç ¹è°æ ºê·¯½Ã ÇÚµéÀ» ¸®ÅÏÇÔÀ¸·Î½á ¿¡µðÆ®ÀÇ ¹è°æ »ö»óÀ» º¯°æÇÒ ¼ö ÀÖ´Ù. ¹è°æ ºê·¯½Ã¸¦ º¯°æÇϰíÀÚ ÇÒ °æ¿ì WM_CREATE µîÀÇ ¸Þ½ÃÁö¿¡¼ ¹Ì¸® ºê·¯½Ã¸¦ ¸¸µé¾î ³õ°í ÀÌ ¸Þ½ÃÁö¿¡¼ ºê·¯½Ã ÇÚµéÀ» ¸®ÅÏÇØ ÁÖ¸é µÈ´Ù. ½Ã½ºÅÛÀº ÀÌ ¸Þ½ÃÁö¿¡¼ ¸®ÅÏÇÑ ºê·¯½Ã ÇÚµé·Î ¿¡µðÆ® ÄÁÆ®·ÑÀÇ ¹è°æÀ» ä»öÇÑ´Ù. ÀÌ ºê·¯½Ã´Â ½Ã½ºÅÛÀÌ ÀÚµ¿À¸·Î ÆÄ±«ÇØ ÁÖÁö ¾ÊÀ¸¹Ç·Î ´õ ÀÌ»ó Çʿ䰡 ¾ø¾îÁ³À» ¶§(WM_DESTROY) ºÎ¸ð À©µµ¿ì°¡ Á÷Á¢ ÆÄ±«ÇØ ÁÖ¾î¾ß ÇÑ´Ù. Àбâ Àü¿ëÀ̳ª »ç¿ë ±ÝÁöµÈ ¿¡µðÆ® ÄÁÆ®·ÑÀº ÀÌ ¸Þ½ÃÁö ´ë½Å WM_CTLCOLORSTATIC ¸Þ½ÃÁö°¡ Àü´ÞµÈ´Ù. ¸®Ä¡ ¿¡µðÆ® ÄÁÆ®·Ñ¿¡ ´ëÇØ¼´Â ÀÌ ¸Þ½ÃÁö°¡ º¸³»ÁöÁö ¾ÊÀ¸¹Ç·Î EM_SETBKCOLOR ¸Þ½ÃÁö·Î ¹è°æ »ö»óÀ» ¹Ù²Û´Ù. ÀÌ ¸Þ½ÃÁö¸¦ »ç¿ëÇÏ¸é ¿¡µðÆ® ÄÁÆ®·ÑÀÇ ÆùÆ®¸¦ º¯°æÇÒ ¼öµµ ÀÖÀ¸³ª ÆùÆ® º¯°æÀº Åë»ó WM_SETFONT ¸Þ½ÃÁö¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ´Ù. ÀÌ ¸Þ½ÃÁö´Â °°Àº ½º·¹µå ³»¿¡¼¸¸ º¸³»Áø´Ù. |
| ¸®ÅÏ |
ÀÌ ¸Þ½ÃÁö¸¦ ó¸®ÇßÀ¸¸é ¹è°æ ºê·¯½ÃÀÇ ÇÚµéÀ» ¸®ÅÏÇØ ÁØ´Ù. ºê·¯½Ã Çڵ鰪Àº LRESULT·Î ij½ºÆÃµÈ ÈÄ ¸®ÅϵǾî¾ß ÇÑ´Ù. ºÎ¸ð À©µµ¿ì°¡ ´ëÈ»óÀÚ¶ó¸é BOOLÇüÀ¸·Î ij½ºÆÃÇØ¾ß ÇÑ´Ù. |
| ¿¹Á¦ |
´ÙÀ½ ¿¹Á¦´Â ¿¡µðÆ®ÀÇ ¹è°æ »ö»óÀ» °ËÁ¤»öÀ¸·Î ¹Ù²Ù°í ±ÛÀÚÀÇ Àü°æ»öÀº ³ë¶õ»öÀ¸·Î Ãâ·ÂÇÑ´Ù.
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
static HBRUSH hBrush;
static HWND hEdit;
TCHAR Mes[]="¿¡µðÆ® ÄÁÆ®·ÑÀÇ »ö»óÀ» º¯°æÇÕ´Ï´Ù";
switch(iMessage) {
case WM_CREATE:
hEdit=CreateWindow("edit",NULL,WS_CHILD | WS_VISIBLE |
WS_BORDER | ES_MULTILINE,
10,50,400,200,hWnd,(HMENU)0,g_hInst,NULL);
hBrush=CreateSolidBrush(RGB(0,0,0));
return 0;
case WM_CTLCOLOREDIT:
if ((HWND)lParam==hEdit) {
SetTextColor((HDC)wParam,RGB(255,255,0));
SetBkColor((HDC)wParam,RGB(0,0,0));
return (LRESULT)hBrush;
}
break;
case WM_SETFOCUS:
SetFocus(hEdit);
return 0;
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_CTLCOLOREDIT¿¡¼ ÀÌ ºê·¯½ÃÀÇ ÇÚµéÀ» ¸®ÅÏÇØ ÁÖ¾ú´Ù. ÇÑ À©µµ¿ì¿¡ ¿¡µðÆ®°¡ ¿©·¯ °³ ÀÖÀ» °æ¿ì lParamÀ¸·Î Àü´ÞµÈ Çڵ鰪À» ºñ±³ÇÏ¿© ¿øÇÏ´Â ¿¡µðÆ® ÄÁÆ®·Ñ¿¡ ´ëÇØ¼¸¸ »ö»óÀ» º¯°æÇÒ ¼öµµ ÀÖÀ¸¸ç °¢ ¿¡µðÆ®º°·Î ´Ù¸¥ »ö»óÀ» ÁÙ ¼öµµ ÀÖ´Ù. ÀÌ ¸Þ½ÃÁöÀÇ wParamÀ¸·Î DC ÇÚµéÀÌ Àü´ÞµÇ¹Ç·Î DCÀÇ Àü°æ»ö, ¹è°æ»ö, ¹è°æ ¸ðµå, Á¤·Ä »óÅ µîÀ» º¯°æÇÒ ¼öµµ ÀÖ´Ù. ºê·¯½Ã´Â WM_DESTROY¿¡¼ ¹Ýµå½Ã ÆÄ±«ÇØ ÁÖ¾î¾ß ÇÑ´Ù.
|
| Ç÷§Æû |
95ÀÌ»ó |
| ÂüÁ¶ |
|
|
written by http://www.winapi.co.kr
|