3-1-´Ù. WM_PAINT ¸Þ½ÃÁö

¾Õ¿¡¼­ ¸¸µé¾ú´ø TextOut ¿¹Á¦´Â ÀÌÇظ¦ ½±°Ô Çϵµ·Ï Çϱâ À§ÇØ ¿À·ÎÁö ¹®ÀÚ¿­ Ãâ·Â ±× ÀÚü¿¡¸¸ ¿ªÁ¡À» µÎ¾úÀ¸¸ç °ú¿¬ ¹®ÀÚ¿­ Ãâ·Â¿¡ ¼º°øÇÏ¿´´Ù. ÇÏÁö¸¸ ¾îµð±îÁö³ª Ãâ·Â °úÁ¤À» º¸À̱â À§ÇÑ ¿¹Á¦ÀÏ »Ó Á¤»óÀûÀÎ Ãâ·ÂÀ» ÇàÇÏÁö´Â ¾Ê¾ÒÀ¸¹Ç·Î ¹®Á¦Á¡À» °¡Áö°í ÀÖ´Ù. ¾î¶² ¹®Á¦Àΰ¡ Çϸé Ãâ·ÂµÈ ¹®ÀÚ¿­ÀÌ ±× ÀÚ¸®¿¡ ±×´ë·Î ÀÖÁö ¾Ê´Â´Ù´Â Á¡ÀÌ´Ù. ¹®ÀÚ¿­ÀÌ Ãâ·ÂµÈ À©µµ¿ì¸¦ ´Ù¸¥ À©µµ¿ì·Î »ì¦ °¡·È´Ù°¡ ´Ù½Ã µå·¯³ªµµ·Ï Çϰųª À©µµ¿ìÀÇ Å©±â¸¦ º¯°æ½ÃÅ°¸é Ãâ·ÂµÇ¾î ÀÖ´ø ¹®ÀÚ¿­ÀÌ »ç¶óÁ® ¹ö¸± °ÍÀÌ´Ù.

¿Ö³ÄÇÏ¸é ¿î¿µÃ¼Á¦ÀÎ À©µµ¿ìÁî°¡ È­¸éÀ» º¸°ü ¹× º¹±¸ÇØ ÁÖÁö ¾Ê±â ¶§¹®ÀÌ´Ù. µµ½º¿¡¼­´Â Çѹø¿¡ ÇϳªÀÇ ÇÁ·Î±×·¥¸¸ ½ÇÇàÇϸç È­¸éÀ» È¥ÀÚ¼­ »ç¿ëÇϹǷΠÇѹø Ãâ·ÂÇØ ³õÀ¸¸é ÀϺη¯ Áö¿ìÁö ¾Ê´ÂÇÑ Àý´ë·Î È­¸éÀÌ Áö¿öÁöÁö ¾Ê´Â´Ù. ÇÏÁö¸¸ ¸ÖƼŽºÅ· ½Ã½ºÅÛÀÎ À©µµ¿ìÁî¿¡¼­´Â ¿©·¯ °³ÀÇ À©µµ¿ì°¡ °ãÄ¥ ¼ö ÀÖÀ¸¹Ç·Î ÇÑ ¹ø Ãâ·ÂÇØ ³õÀº ¹®ÀÚ¿­ÀÌ ¾ðÁ¦±îÁö°í ±×´ë·Î ±× ÀÚ¸®¿¡ Àִ´ٴ º¸ÀåÀÌ ¾ø´Ù. ´Ù¸¥ À©µµ¿ì¿¡ ÀÇÇØ °¡·ÁÁ³´Ù°¡ ´Ù½Ã ³ªÅ¸³ª¸é °¡·ÁÁ³´ø À©µµ¿ì´Â Áö¿öÁ® ÀÖ°Ô µÈ´Ù. ÇÏÁö¸¸ ¿ì¸®´Â À©µµ¿ìÁî »ç¿ëÁß¿¡ ÀÌ·± Çö»óÀ» ÀüÇô ¸ñ°ÝÇÒ ¼ö ¾ø¾ú´Ù. ±× ÀÌÀ¯´Â ´ÙÀ½¿¡ ¼³¸íÇÏ´Â ¹æ¹ýÀ¸·Î ²÷ÀÓ¾øÀÌ Áö¿öÁø ºÎºÐÀ» º¹±¸Çϱ⠶§¹®ÀÌ´Ù.

À©µµ¿ìÁî´Â °¡·ÁÁ³´ø À©µµ¿ìÀÇ È­¸éÀ» º¸°ü ¹× º¹±¸ÇØ Áִ åÀÓÀ» ÁöÁö ¾ÊÀ¸¸ç È­¸éÀ» º¹±¸(Repaint)Çϴ åÀÓÀº ÀüÀûÀ¸·Î ÇÁ·Î±×·¥ Àڽſ¡°Ô ÀÖ´Ù. ÀÚ½ÅÀÇ ÀÛ¾÷ ¿µ¿ª ÀϺΰ¡ Áö¿öÁ³´Ù¸é ÇÁ·Î±×·¥Àº Àçºü¸£°Ô Áö¿öÁø ºÎºÐÀ» º¹±¸ÇØ¾ß ÇÑ´Ù. ¾Õ¿¡¼­ ¸¸µç TextOut ¿¹Á¦´Â ÀÌ·± º¹±¸¸¦ ÇÏÁö ¾Ê±â ¶§¹®¿¡ Å©±â°¡ º¯Çϰųª ´Ù¸¥ À©µµ¿ì¿¡ µ¤¿©Áö¸é ¹®ÀÚ¿­ÀÌ »ç¶óÁö´Â °ÍÀÌ´Ù. ¹°·Ð ¸¶¿ì½º ¹öÆ°À» ´Ù½Ã ´©¸£¸é ¹®ÀÚ¿­Àº ´Ù½Ã Ãâ·ÂµÇÁö¸¸ ¾ðÁ¨°¡´Â ¶Ç ´Ù½Ã Áö¿öÁú °ÍÀÌ´Ù.

±×·¸´Ù¸é ¹®Á¦ ÇØ°áÀ» À§ÇØ TextOut ¿¹Á¦¸¦ ¼öÁ¤ÇÏ¿© È­¸éÀÌ Áö¿öÁö¸é ´Ù½Ã º¹±¸Çϵµ·Ï ¸¸µé¸é µÈ´Ù. ¸¶¿ì½º ¿ÞÂÊ ¹öÆ°À» ´©¸£¸é ¹®ÀÚ¿­À» Ãâ·ÂÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó È­¸éÀÌ Áö¿öÁú ¶§¸¶´Ù ¹®ÀÚ¿­À» Ãâ·ÂÇϵµ·Ï ÇØ ÁÖ¾î¾ß ÇÑ´Ù. ±×·³ ¾î´À ½ÃÁ¡¿¡¼­ ¹®ÀÚ¿­À» Ãâ·ÂÇØ¾ß ÇÒ °ÍÀΰ¡? ¹Ù·Î ±× ¾î´À ½ÃÁ¡ÀÌ WM_PAINT ¸Þ½ÃÁöÀÌ´Ù. À©µµ¿ì´Â °³º° À©µµ¿ìÀÇ È­¸éÀ» º¸°üÇØ ÁÖÁö´Â ¾ÊÁö¸¸ ´ë½Å À©µµ¿ìÀÇ ÀϺΰ¡ Áö¿öÁ³´Ù´Â »ç½ÇÀ» ÇÁ·Î±×·¥À¸·Î ¾Ë·ÁÁÖ¸ç ¾Ë·ÁÁÖ´Â ¹æ¹ýÀº WM_PAINT ¸Þ½ÃÁö¸¦ º¸³»ÁÖ´Â °ÍÀÌ´Ù. WM_PAINT ¸Þ½ÃÁö´Â "³ÊÀÇ ÀÛ¾÷ ¿µ¿ªÀÌ ÀϺΠÁö¿öÁ³À¸´Ï±î »¡¸® º¹±¸ÇØ"¶ó´Â ¶æÀÌ´Ù. TextOut ¿¹Á¦¸¦ ¼öÁ¤ÇÏ¿© WM_LBUTTONDOWN ¸Þ½ÃÁö¿¡ ÀÖ´Â ¹®ÀÚ¿­ Ãâ·Â¹®À» WM_PAINT·Î ¿Å°Üº¸µµ·Ï ÇÏÀÚ. WM_ LBUTTONDOWNÀº »èÁ¦ÇØ ¹ö·Áµµ µÈ´Ù. ÀÏ´Ü ¼Ò½º¸¦ º¸ÀÌ¸é ´ÙÀ½°ú °°´Ù.

long FAR PASCAL WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	switch(iMessage) {
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	case WM_PAINT:
		hdc=BeginPaint(hWnd,&ps);
		TextOut(hdc,100,100,"Beautiful Korea",15);
		EndPaint(hWnd,&ps);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

¹®ÀÚ¿­ Ãâ·Â¹®ÀÌ WM_PAINT ¸Þ½ÃÁö ó¸® ·çƾ¿¡ ÀÖÀ¸¹Ç·Î ¿©±â¼­ Ãâ·ÂÇÑ ¹®ÀÚ¿­ Ãâ·ÂÀº Áö¿öÁ®µµ ´Ù½Ã º¹±¸µÇ¹Ç·Î Ç×»ó ±× ÀÚ¸®¿¡ ÀÖ´Â °Íó·³ º¸ÀÌ°Ô µÈ´Ù.

À©µµ¿ìÁî¿¡¼­ È­¸éÀ» º¸°ü, º¹±¸ÇÏ´Â ¸ÞÄ¿´ÏÁòÀÌ ÀÌ·± ½ÄÀ̶ó¸é ¸ðµç ±×·¡ÇÈ Ãâ·ÂÀº WM_PAINT ¸Þ½ÃÁö 󸮽à ÇØ ÁÖ¾î¾ß¸¸ Çϴ°¡? ±×·¸Áö ¾ÊÀ¸¸é ±×·Á ³õÀº ±×¸²ÀÌ Ç×»ó ±× ÀÚ¸®¿¡ ÀÖ´Â´Ù°í º¸ÀåÇÒ ¼ö ¾ø´Â°¡? ±× ´ë´äÀº ±×·¸´ÙÀÌ´Ù. µµ½º¿¡¼­¿Í °°ÀÌ ¾Æ¹«·¸°Ô³ª È­¸é¿¡ Ãâ·ÂÇØ ³õ¾Æ¼­´Â ¾ÈµÈ´Ù. ±×·¸´Ù¸é ¸ðµç ÇÁ·Î±×·¥Àº ÇöÀç È­¸é¿¡ ±×·ÁÁø ³»¿ëÀ» öÀúÇÏ°Ô ±â¾ïÇϰųª ´Ù½Ã ±×¸®±â À§ÇÑ Áغñ¸¦ ÇØ ³õ¾Æ¾ß Çϴ°¡? ±× ´ë´äµµ ¹°·Ð ±×·¸´ÙÀÌ´Ù. ±× º¹ÀâÇÑ Ãâ·ÂÇüŸ¦ ¾î¶»°Ô ´Ù ÀÏÀÏÀÌ ±â¾ïÇØ µÎ´Â°¡ ÇÏ°í ÀǾÆÇØÇÏ°ÚÁö¸¸ ¸ðµç À©µµ¿ìÁî ÇÁ·Î±×·¥ÀÌ ±×·¸°Ô ÇÏ°í ÀÖ´Ù.


¸ñ·Ï º¸±â  ´ÙÀ½ °­Á            written by http://www.winapi.co.kr