| ¿øÇü |
BOOL UpdateWindow(HWND hWnd); |
| MFC ¿øÇü |
void CWnd::UpdateWindow( ); |
| Àμö |
¢º hWnd : À©µµ¿ì ÇÚµé |
| ¸®ÅÏ |
¼º°øÇϸé 0ÀÌ ¾Æ´Ñ °ªÀ» ¸®ÅÏÇÏ¸ç ¿¡·¯ ¹ß»ý½Ã 0À» ¸®ÅÏÇÑ´Ù. |
| ¼³¸í |
ÀÌ ÇÔ¼ö´Â À©µµ¿ì ÇÁ·Î½ÃÀú·Î WM_PAINT ¸Þ½ÃÁö¸¦ º¸³» ÀÛ¾÷¿µ¿ªÀ» °Á¦·Î ±×¸®µµ·Ï ÇÑ´Ù. WM_PAINT ¸Þ½ÃÁö´Â ¿ì¼± ¼øÀ§°¡ ´Ê±â ¶§¹®¿¡ ¹«È¿ ¿µ¿ªÀÌ ÀÖ´õ¶óµµ ¸ÕÀú ó¸®ÇؾßÇÒ ´Ù¸¥ ¸Þ½ÃÁö°¡ ÀÖÀ¸¸é Áï½Ã 󸮵ÇÁö ¾Ê´Â´Ù. ¸¸¾à ´Ù¸¥ ¾î¶² ¸Þ½ÃÁöº¸´Ùµµ WM_PAINT¸¦ ¸ÕÀú ó¸®ÇØ¾ß ÇÒ Çʿ䰡 ÀÖ´Ù¸é ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÏ¿© Áï½Ã ÀÛ¾÷¿µ¿ªÀ» ´Ù½Ã ±×¸®µµ·Ï ÇÒ ¼ö ÀÖ´Ù. ÀÌ ÇÔ¼ö´Â ¸Þ½ÃÁö Å¥¸¦ ÅëÇÏÁö ¾Ê°í À©µµ¿ì ÇÁ·Î½ÃÀú·Î °ð¹Ù·Î WM_PAINT ¸Þ½ÃÁö¸¦ Àü´ÞÇϹǷΠ¸Þ½ÃÁö ´ë±â ¼ø¼¿¡ »ó°ü¾øÀÌ Áï½Ã ÀÛ¾÷¿µ¿ªÀ» ´Ù½Ã ±×¸®µµ·Ï ÇÑ´Ù. ±×·¯³ª ÀÛ¾÷¿µ¿ª¿¡ ¹«È¿¿µ¿ªÀÌ ¾øÀ¸¸é ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÑ´ÙÇÏ´õ¶óµµ WM_PAINT ¸Þ½ÃÁö´Â º¸³»ÁöÁö ¾Ê´Â´Ù. ÀÛ¾÷¿µ¿ªÀ» ¿ÏÀüÈ÷ ´Ù½Ã Áï½Ã ±×¸®·Á¸é InvalidateRect ÇÔ¼ö·Î ÀÛ¾÷¿µ¿ªÀ» ¹«È¿ÈÇÑ ÈÄ ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÏ¸é µÈ´Ù. ´ÙÀ½ ¿¹Á¦´Â ÀÌ ÇÔ¼ö·Î ÀÛ¾÷¿µ¿ªÀ» Áï½Ã ±×¸®´Â ¿¹¸¦ º¸¿©ÁØ´Ù.
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
static BOOL bEllipse;
switch(iMessage) {
case WM_LBUTTONDOWN:
bEllipse=TRUE;
InvalidateRect(hWnd,NULL,TRUE);
UpdateWindow(hWnd);
Sleep(500);
// ½Ã°£ÀÌ °É¸®´Â ¾î¶² ÀÛ¾÷
return TRUE;
case WM_RBUTTONDOWN:
bEllipse=FALSE;
InvalidateRect(hWnd,NULL,TRUE);
Sleep(500);
// ½Ã°£ÀÌ °É¸®´Â ¾î¶² ÀÛ¾÷
return TRUE;
case WM_PAINT:
hdc=BeginPaint(hWnd, &ps);
if (bEllipse) {
Ellipse(hdc,10,10,300,200);
}
EndPaint(hWnd, &ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
WM_PAINT¿¡¼´Â bEllipseº¯¼ö°ª¿¡ µû¶ó Ÿ¿øÀ» ±×¸®°Å³ª Áö¿î´Ù. ¿ÞÂÊ ¹öưÀ» ´©¸£¸é bEllipse¸¦ TRUE·Î ¹Ù²Û ÈÄ ÀÛ¾÷¿µ¿ªÀ» ¹«È¿ÈÇÏ°í ¿À¸¥ÂÊ ¹öưÀ» ´©¸£¸é bEllipse¸¦ FALSE·Î ¹Ù²Û ÈÄ ÀÛ¾÷¿µ¿ªÀ» ¹«È¿ÈÇϹǷΠÁÂ¿ì ¸¶¿ì½º ¹öưÀ» ´·¯ Ÿ¿øÀ» ±×¸®°Å³ª Áö¿ï ¼ö ÀÖ´Ù. ±×·±µ¥ ¸¸¾à bEllipse°ªÀ» ¹Ù²Û ÈÄ ½Ã°£ÀÌ °É¸®´Â ¾î¶² ÀÛ¾÷À» ÇØ¾ß ÇÑ´Ù°í ÇØ º¸ÀÚ. ÀÌ °æ¿ì ¹«È¿¿µ¿ªÀÌ ÀÖ´õ¶óµµ WM_PAINT ¸Þ½ÃÁö°¡ Áï½Ã 󸮵ÇÁö ¾Ê±â ¶§¹®¿¡ ÀÌ ÀÛ¾÷ÀÌ ³¡³¯ ¶§±îÁö´Â bEllipse º¯¼öÀÇ °ªÀÇ º¯È°¡ ¹Ý¿µµÇÁö ¾Ê´Â´Ù. ÀÌ·² ¶§ UpdateWindow ÇÔ¼ö¸¦ È£ÃâÇØ ÁÖ¸é Áï½Ã WM_PAINT¸¦ ó¸®ÇÏ¿© ÀÛ¾÷¿µ¿ªÀ» ´Ù½Ã ±×¸°´Ù. ¿¹Á¦¿¡¼´Â WM_LBUTTONDOWN¿¡¸¸ UpdateWindow ÇÔ¼ö¸¦ È£ÃâÇßÀ¸¹Ç·Î Ÿ¿øÀÌ ±×·ÁÁú ¶§´Â Áï½Ã ±×·ÁÁö³ª Áö¿öÁú ¶§´Â 0.5ÃÊÀÇ Áö¿¬ ½Ã°£ÀÌ ¹ß»ýÇÏ°Ô µÈ´Ù. ÀÌ ¿¹Á¦¿¡¼ Sleep(500)Àº ½Ã°£ÀÌ °É¸®´Â ¾î¶² ÀÛ¾÷À» ´ëüÇϱâ À§ÇØ »ðÀԵǾú´Ù.
|
| Âü°íÇÔ¼ö |
RedrawWindow : UpdateWindowº¸´Ù ´Ù¾çÇÑ Ç÷¡±×¸¦ °¡Áö´Â ´Ù½Ã ±×¸®±â ÇÔ¼öÀÌ´Ù. |
| Ç÷§Æû | 95ÀÌ»ó |
| ÂüÁ¶ |
|
|
written by http://www.winapi.co.kr
|