WM_CTLCOLORDLG

Àμö

wParam : ´ëÈ­»óÀÚÀÇ DC ÇÚµé. ÀÌ Çڵ鰪À¸·Î Àü°æ»ö°ú ¹è°æ»öÀ» º¯°æÇÑ´Ù.

lParam : ´ëÈ­»óÀÚÀÇ ÇÚµé.

¼³¸í

½Ã½ºÅÛÀÌ ´ëÈ­»óÀÚ¸¦ ±×¸®±â Àü¿¡ ÀÌ ¸Þ½ÃÁö¸¦ º¸³» ¹è°æ»ö»óÀ» Áú¹®ÇÑ´Ù. DefWindowProcÀº ½Ã½ºÅÛ¿¡ Á¤ÀÇµÈ ¹è°æ »ö»óÀ» ¸®ÅÏÇϵµ·Ï µÇ¾î ÀÖÀ¸³ª ÀÌ ¸Þ½ÃÁö¸¦ ´ëÈ­»óÀÚ°¡ Á÷Á¢ ó¸®Çϸé wParamÀ¸·Î Àü´ÞµÇ´Â DC¿¡ ¹è°æ»ö°ú Àü°æ»öÀ» ¼³Á¤ÇÒ ¼ö ÀÖÀ¸¸ç ¹è°æ ºê·¯½Ã ÇÚµéÀ» ¸®ÅÏÇÔÀ¸·Î½á ´ëÈ­»óÀÚÀÇ ¹è°æ»öÀ» º¯°æÇÒ ¼ö ÀÖ´Ù.

¹è°æ ºê·¯½Ã¸¦ º¯°æÇÏ°íÀÚ ÇÒ °æ¿ì WM_INITDIALOG ¸Þ½ÃÁö¿¡¼­ ¹Ì¸® ºê·¯½Ã¸¦ ¸¸µé¾î ³õ°í ÀÌ ¸Þ½ÃÁö¿¡¼­ ºê·¯½Ã ÇÚµéÀ» ¸®ÅÏÇØ ÁÖ¸é µÈ´Ù. ´ëÈ­»óÀÚ´Â ÀÌ ¸Þ½ÃÁö¿¡¼­ ¸®ÅÏÇÑ ºê·¯½Ã ÇÚµé·Î ¹è°æÀ» ä»öÇÏ´Ù. ÀÌ ºê·¯½Ã´Â ½Ã½ºÅÛÀÌ ÀÚµ¿À¸·Î Æı«ÇØ ÁÖÁö ¾ÊÀ¸¹Ç·Î ´õ ÀÌ»ó ÇÊ¿ä°¡ ¾ø¾îÁ³À» ¶§(EndDialog È£Ãâ Á÷Àü)´ëÈ­»óÀÚ°¡ Æı«ÇØ ÁÖ¾î¾ß ÇÑ´Ù.

ÀÌ ¸Þ½ÃÁö´Â °°Àº ½º·¹µå ³»¿¡¼­¸¸ º¸³»Áø´Ù.

¸®ÅÏ

ÀÌ ¸Þ½ÃÁö¸¦ ó¸®ÇßÀ¸¸é ¹è°æ ºê·¯½ÃÀÇ ÇÚµéÀ» ¸®ÅÏÇØ ÁØ´Ù. ºê·¯½Ã Çڵ鰪Àº INT_PTR·Î ij½ºÆÃµÈ ÈÄ ¸®ÅϵǾî¾ß ÇÑ´Ù. ´ëÈ­»óÀÚ ÇÁ·Î½ÃÀú°¡ FALSE¸¦ ¸®ÅÏÇÏ¸é µðÆúÆ® 󸮰¡ ¼öÇàµÈ´Ù.

¿¹Á¦

¿¹Á¦ 1

´ÙÀ½ ¿¹Á¦´Â ´ëÈ­»óÀÚÀÇ ¹è°æ »ö»óÀ» ³ë¶õ»öÀ¸·Î º¯°æÇÑ´Ù.

#include "resource.h"
BOOL CALLBACK AboutDlgProc(HWND hDlg,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	static HBRUSH hBrush;
	switch(iMessage)
	{
	case WM_INITDIALOG:
		hBrush=CreateSolidBrush(RGB(255,255,0));
		return TRUE;
	case WM_CTLCOLORDLG:
		return (INT_PTR)hBrush;
	case WM_COMMAND:
		switch (wParam)
		{
		case IDOK:
		case IDCANCEL:
			DeleteObject(hBrush);
			EndDialog(hDlg,0);
			return TRUE;
		}
		break;
	}
	return FALSE;
}

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	TCHAR Mes[]="¸¶¿ì½º ¿ÞÂÊ ¹öÆ°À» ´©¸£½Ê½Ã¿À";

	switch(iMessage) {
	case WM_LBUTTONDOWN:
		DialogBox(g_hInst,MAKEINTRESOURCE(IDD_DIALOG1),hWnd,AboutDlgProc);
		return 0;
	case WM_PAINT:
		hdc=BeginPaint(hWnd, &ps);
		TextOut(hdc,10,10,Mes,lstrlen(Mes));
		EndPaint(hWnd, &ps);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

½Ã½ºÅÛÀº ´ëÈ­»óÀÚ¸¦ ±×¸®±â Àü¿¡ Ç×»ó WM_CTLCOLORDLG ¸Þ½ÃÁö¸¦ ´ëÈ­»óÀÚ·Î º¸³» ¹è°æ »ö»óÀ» ¼±ÅÃÇÒ ¼ö ÀÖµµ·Ï ÇØ ÁØ´Ù. ´ëÈ­»óÀÚ°¡ ÀÌ ¸Þ½ÃÁö¿¡ ÀÀ´äÇÏÁö ¾ÊÀ¸¸é DefWindowProcÀÌ ÀûÀýÇÑ ½Ã½ºÅÛ »ö»óÀ» ´ë½Å ¼±ÅÃÇØ ÁØ´Ù. ¹è°æ ºê·¯½Ã¸¦ º¯°æÇÏ·Á¸é WM_INITDIALOG¿¡¼­ ¹Ì¸® ¿øÇÏ´Â ºê·¯½Ã¸¦ »ý¼ºÇØ ³õ°í WM_CTLCOLORDLG ¸Þ½ÃÁö¸¦ ¹Þ¾ÒÀ» ¶§ ±× ÇÚµéÀ» ¸®ÅÏÇØ ÁØ´Ù. ÀÌ ºê·¯½Ã´Â EndDialog¿¡ ÀÇÇØ ´ëÈ­»óÀÚ°¡ Æı«µÉ ¶§ °°ÀÌ ÇØÁ¦ÇØ ÁÖ¾î¾ß ÇÑ´Ù. ½ÇÇàÁßÀÇ ¸ð½ÀÀº ´ÙÀ½°ú °°´Ù.

Ç÷§Æû

95ÀÌ»ó

ÂüÁ¶

 


written by http://www.winapi.co.kr