UpdateWindow

¿øÇü

BOOL UpdateWindow(HWND hWnd);

MFC ¿øÇü

void CWnd::UpdateWindow( );

Àμö

¢º hWnd : À©µµ¿ì ÇÚµé

¸®ÅÏ

¼º°øÇϸé 0ÀÌ ¾Æ´Ñ °ªÀ» ¸®ÅÏÇÏ¸ç ¿¡·¯ ¹ß»ý½Ã 0À» ¸®ÅÏÇÑ´Ù.

¼³¸í

ÀÌ ÇÔ¼ö´Â À©µµ¿ì ÇÁ·Î½ÃÀú·Î WM_PAINT ¸Þ½ÃÁö¸¦ º¸³» ÀÛ¾÷¿µ¿ªÀ» °­Á¦·Î ±×¸®µµ·Ï ÇÑ´Ù. WM_PAINT ¸Þ½ÃÁö´Â ¿ì¼± ¼øÀ§°¡ ´Ê±â ¶§¹®¿¡ ¹«È¿ ¿µ¿ªÀÌ ÀÖ´õ¶óµµ ¸ÕÀú ó¸®ÇؾßÇÒ ´Ù¸¥ ¸Þ½ÃÁö°¡ ÀÖÀ¸¸é Áï½Ã 󸮵ÇÁö ¾Ê´Â´Ù. ¸¸¾à ´Ù¸¥ ¾î¶² ¸Þ½ÃÁöº¸´Ùµµ WM_PAINT¸¦ ¸ÕÀú ó¸®ÇØ¾ß ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù¸é ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÏ¿© Áï½Ã ÀÛ¾÷¿µ¿ªÀ» ´Ù½Ã ±×¸®µµ·Ï ÇÒ ¼ö ÀÖ´Ù.

ÀÌ ÇÔ¼ö´Â ¸Þ½ÃÁö Å¥¸¦ ÅëÇÏÁö ¾Ê°í À©µµ¿ì ÇÁ·Î½ÃÀú·Î °ð¹Ù·Î WM_PAINT ¸Þ½ÃÁö¸¦ Àü´ÞÇϹǷΠ¸Þ½ÃÁö ´ë±â ¼ø¼­¿¡ »ó°ü¾øÀÌ Áï½Ã ÀÛ¾÷¿µ¿ªÀ» ´Ù½Ã ±×¸®µµ·Ï ÇÑ´Ù. ±×·¯³ª ÀÛ¾÷¿µ¿ª¿¡ ¹«È¿¿µ¿ªÀÌ ¾øÀ¸¸é ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÑ´ÙÇÏ´õ¶óµµ WM_PAINT ¸Þ½ÃÁö´Â º¸³»ÁöÁö ¾Ê´Â´Ù. ÀÛ¾÷¿µ¿ªÀ» ¿ÏÀüÈ÷ ´Ù½Ã Áï½Ã ±×¸®·Á¸é InvalidateRect ÇÔ¼ö·Î ÀÛ¾÷¿µ¿ªÀ» ¹«È¿È­ÇÑ ÈÄ ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÏ¸é µÈ´Ù.

¿¹Á¦ 1

´ÙÀ½ ¿¹Á¦´Â ÀÌ ÇÔ¼ö·Î ÀÛ¾÷¿µ¿ªÀ» Áï½Ã ±×¸®´Â ¿¹¸¦ º¸¿©ÁØ´Ù.

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