Àμö |
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
|