| Àμö |
wParam : ¹è°æ ä»ö¿¡ »ç¿ëµÉ DCÀÇ ÇÚµé lParam : »ç¿ëµÇÁö ¾ÊÀ½ |
| ¼³¸í |
À©µµ¿ì Å©±â º¯°æµÇ¾ú°Å³ª, ´Ù¸¥ À©µµ¿ì¿¡ °¡·ÁÁø ºÎºÐÀÌ µå·¯³µ´Ù°Å³ª ÇÒ ¶§ ¹è°æÀ» Áö¿ì±â À§ÇØ ÀÌ ¸Þ½ÃÁö°¡ º¸³»Áø´Ù. WM_PAINT¿¡¼ ÀÛ¾÷ ¿µ¿ª¿¡ Ãâ·ÂÀ» Çϱâ Àü¿¡ ¸ÕÀú Àü¿¡ ±×·ÁÁ® ÀÖ´ø ³»¿ëÀ» Áö¿ö¾ß ÇÑ´Ù. ÀÌ ¸Þ½ÃÁö¸¦ ó¸®ÇÏÁö ¾ÊÀ» °æ¿ì DefWindowProcÀº À©µµ¿ì Ŭ·¡½º¿¡ Á¤ÀÇµÈ ¹è°æ ºê·¯½Ã·Î ÀÛ¾÷ ¿µ¿ªÀ» Áö¿î´Ù. ±×·¡¼ º°µµÀÇ Ã³¸®¸¦ ÇÏÁö ¾Ê´õ¶óµµ À©µµ¿ì¸¦ »õ·Î ±×¸± ¶§´Â Ç×»ó ¹è°æ ºê·¯½Ã·Î ÀÛ¾÷ ¿µ¿ªÀ» Áö¿î ÈÄ WM_PAINT¿¡¼ Ãâ·ÂÀ» ³»º¸³»°Ô µÈ´Ù. ¸¸¾à À©µµ¿ì Ŭ·¡½ºÀÇ ¹è°æ ºê·¯½Ã°¡ NULLÀ̸é DefWindowProcÀº ¾Æ¹«°Íµµ ÇÏÁö ¾ÊÀ¸¸ç µû¶ó¼ ¹è°æÀº Áö¿öÁöÁö ¾Ê´Â´Ù. ÀÌ °æ¿ì ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ Á÷Á¢ ÀÌ ¸Þ½ÃÁö¸¦ ó¸®ÇÏ¿© ¹è°æÀ» Áö¿ö ÁÖ¾î¾ß ÇÑ´Ù. º°µµÀÇ ºê·¯½Ã¸¦ ¸¸µé¾î ¹è°æÀ» Áö¿ï ¼öµµ ÀÖ°í ºñÆ®¸ÊÀ̳ª ÀÛµµ ÇÔ¼ö·Î Ä¿½ºÅÒ ¹è°æÀ» ¸¸µé ¼öµµ ÀÖ´Ù. |
| ¸®ÅÏ |
¹è°æÀ» Áö¿üÀ¸¸é TRUE(0ÀÌ ¾Æ´Ñ °ª)¸¦ ¸®ÅÏÇϸç Áö¿ìÁö ¸øÇßÀ¸¸é 0À» ¸®ÅÏÇÑ´Ù. ¹è°æÀ» Áö¿î ÈÄ TRUE¸¦ ¸®ÅÏÇÏ¸é ½Ã½ºÅÛÀº ´õ ÀÌ»ó ¹è°æÀ» Áö¿ï Çʿ䰡 ¾ø´Ù´Â Ç¥½Ã¸¦ ÇÏ°Ô µÇ¸ç ÀÌ Ç¥½Ã´Â WM_PAINT·Î Àü´ÞµÇ´Â PAINTSTRUCT ±¸Á¶Ã¼ÀÇ fErase ¸â¹ö·Î ³ªÅ¸³ª°Ô µÈ´Ù. |
| ¿¹Á¦ |
´ÙÀ½ ¿¹Á¦´Â À©µµ¿ì Ŭ·¡½ºÀÇ ¹è°æ ºê·¯½Ã¸¦ NULL·Î ÁöÁ¤ÇØ ³õ°í WM_ERASEBKGND¿¡¼ Á÷Á¢ ¹è°æÀ» Áö¿î´Ù.
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance
,LPSTR lpszCmdParam,int nCmdShow)
{
WndClass.hbrBackground=NULL;
....
}
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT crt;
HBRUSH Brush;
TCHAR Mes[]="¹è°æ »ö»óÀÌ Á» ÀÌ»óÇÏÁö¿ä?";
switch(iMessage) {
case WM_PAINT:
hdc=BeginPaint(hWnd, &ps);
TextOut(hdc,10,10,Mes,lstrlen(Mes));
EndPaint(hWnd, &ps);
return 0;
case WM_ERASEBKGND:
hdc=(HDC)wParam;
Brush=CreateHatchBrush(HS_DIAGCROSS,RGB(0,0,255));
GetClientRect(hWnd,&crt);
FillRect(hdc,&crt,Brush);
DeleteObject(Brush);
return TRUE;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
ÇØÄ¡ ºê·¯½Ã¸¦ ¸¸µç ÈÄ ÀÌ ºê·¯½Ã·Î ÀÛ¾÷ ¿µ¿ªÀ» °¡µæ ä¿ü´Ù. °°Àº ¹æ¹ýÀ¸·Î ºñÆ®¸ÊÀ» ¹è°æÀ¸·Î »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.
|
| Ç÷§Æû |
95ÀÌ»ó |
| ÂüÁ¶ |
|
|
written by http://www.winapi.co.kr
|