WM_SETFONT

Àμö

wParam : ÆùÆ®ÀÇ ÇÚµé. NULLÀÏ °æ¿ì ½Ã½ºÅÛ ÆùÆ®¸¦ »ç¿ëÇÑ´Ù.

lParam : ÆùÆ®¸¦ º¯°æÇÑ ÈÄ ÄÁÆ®·ÑÀ» ´Ù½Ã ±×¸± °ÍÀÎÁö ¾Æ´ÑÁö¸¦ ÁöÁ¤ÇÑ´Ù. ÀÌ °ªÀÌ TRUEÀ̸é ÄÁÆ®·ÑÀº ÀÚ±â ÀÚ½ÅÀ» ´Ù½Ã ±×¸°´Ù. WM_CREATE³ª WM_INITDIALOG¿¡¼­ ÆùÆ®¸¦ º¯°æÇÑ´Ù¸é ±»ÀÌ ´Ù½Ã ±×¸± ÇÊ¿ä°¡ ¾øÀ¸¹Ç·Î ÀÌ Àμö´Â FALSE·Î ÁØ´Ù.

¼³¸í

ÄÁÆ®·ÑÀÇ ÆùÆ®¸¦ º¯°æÇÑ´Ù. Ç¥ÁØ ÄÁÆ®·Ñ ¹× °øÅë ÄÁÆ®·ÑÀº ±âº»ÀûÀ¸·Î ½Ã½ºÅÛ ÆùÆ®·Î ÅؽºÆ®¸¦ Ãâ·ÂÇÏ¸ç ´ëÈ­»óÀÚ¿¡ ÀÖ´Â ÄÁÆ®·ÑÀÇ °æ¿ì ´ëÈ­»óÀÚÀÇ ÆùÆ®¿Í °°Àº ÆùÆ®¸¦ »ç¿ëÇÑ´Ù. ½ÇÇàÁß¿¡ ÄÁÆ®·ÑÀÇ ±Û²ÃÀ» º¯°æÇÏ°íÀÚ ÇÑ´Ù¸é ÆùÆ® ¿ÀºêÁ§Æ®¸¦ ¸ÕÀú ¸¸µç ÈÄ ÀÌ ¸Þ½ÃÁö·Î ÆùÆ®ÀÇ ÇÚµéÀ» Àü´ÞÇÏ¸é µÈ´Ù.

ÄÁÆ®·ÑÀÇ ÆùÆ®¸¦ º¯°æÇÏ´Â °¡Àå ÁÁÀº ¶§´Â ´ëÈ­»óÀÚ°¡ WM_INITDIALOG ¸Þ½ÃÁö¸¦ ¹Þ¾ÒÀ» ¶§, ¶Ç´Â ¿À¹ö·¦µå À©µµ¿ìÀÇ °æ¿ì WM_CREATE ¸Þ½ÃÁö¸¦ ¹Þ¾ÒÀ» ¶§ÀÌ´Ù. Áï, ÄÁÆ®·ÑÀÌ »ý¼ºµÈ Á÷ÈÄ, È­¸é¿¡ º¸À̱â Á÷Àü¿¡ ÆùÆ®¸¦ ¹Ù²Ù¾î¾ß È­¸é ¶³¸²µµ ¾ø°í ´Ù½Ã ±×¸± ÇÊ¿äµµ ¾ø¾î °¡Àå ÁÁ´Ù. ¹°·Ð ½ÇÇàÁß¿¡¶óµµ ÆùÆ®¸¦ ÀÚÀ¯·Ó°Ô º¯°æÇÒ ¼ö ÀÖÁö¸¸ ÆùÆ® º¯°æ¿¡ ÀÇÇØ ÄÁÆ®·ÑÀÌ ´Ù½Ã ±×·ÁÁ®¾ß ÇϹǷΠº¸±â¿¡ ÁÁÁö ¾Ê´Ù. ÄÁÆ®·ÑÀÇ ÅؽºÆ® Ãâ·Â¿¡ »ç¿ëÇÒ ÆùÆ®´Â ÄÁÆ®·ÑÀÇ ºÎ¸ð°¡ »ý¼ºÇØ¾ß ÇÏ¸ç ´Ù »ç¿ëÇÏ°í ³­ ÈÄ¿¡ Á÷Á¢ Æı«ÇØ ÁÖ¾î¾ß ÇÑ´Ù.

½ÇÇàÁß¿¡ ÄÁÆ®·ÑÀÇ ÆùÆ®¸¦ ¹Ù²Û´Ù°í Çؼ­ ÄÁÆ®·ÑÀÇ Å©±â°¡ ¹Ù²î´Â °ÍÀº ¾Æ´Ï´Ù. µû¶ó¼­ ÆùÆ®¸¦ º¯°æÇÒ ÇÊ¿ä°¡ ÀÖ´Â ÄÁÆ®·ÑÀº ¹Ì¸® º¯°æµÉ ÆùÆ®ÀÇ Å©±â¿¡ ¸Â´Â ÃæºÐÇÑ Å©±â·Î »ý¼ºÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ±×·¸Áö ¾ÊÀ¸¸é ÄÁÆ®·ÑÀÇ ÅؽºÆ®°¡ ÄÁÆ®·Ñ ¹Ù±ùÀ¸·Î »ßÁ® ³ª¿Í À߸± ¼ö°¡ ÀÖ´Ù.

¸®ÅÏ

¾ø´Ù.

¿¹Á¦

¿¹Á¦ 1

´ÙÀ½ ¿¹Á¦´Â ¿¡µðÆ® ÄÁÆ®·ÑÀÇ ÆùÆ®¸¦ ½ÇÇàÁß¿¡ º¯°æÇÑ´Ù.

HWND hEdit;
HFONT hFont;
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	TCHAR Mes[]="ÁÂ¿ì ¸¶¿ì½º ¹öÆ°À» ´©¸£¸é ¿¡µðÆ®ÀÇ ±Û²ÃÀ» º¯°æÇÕ´Ï´Ù";

	switch(iMessage) {
	case WM_CREATE:
		hEdit=CreateWindow("edit",NULL,WS_CHILD | WS_VISIBLE | WS_BORDER | ES_MULTILINE,
			10,10,400,200,hWnd,(HMENU)0,g_hInst,NULL);
		hFont=CreateFont(20,0,0,0,0,0,0,0,HANGEUL_CHARSET,3,2,1,
			VARIABLE_PITCH | FF_ROMAN,"±Ã¼­");
		SendMessage(hEdit,WM_SETFONT,(WPARAM)hFont,(LPARAM)FALSE);
		SetWindowText(hEdit,"±Û²Ã º¯°æ Å×½ºÆ® Áß");
		SetFocus(hEdit);
		return 0;
	case WM_LBUTTONDOWN:
		SendMessage(hEdit,WM_SETFONT,(WPARAM)hFont,(LPARAM)TRUE);
		return 0;
	case WM_RBUTTONDOWN:
		SendMessage(hEdit,WM_SETFONT,(WPARAM)NULL,(LPARAM)TRUE);
		return 0;
	case WM_PAINT:
		hdc=BeginPaint(hWnd, &ps);
		TextOut(hdc,10,250,Mes,lstrlen(Mes));
		EndPaint(hWnd, &ps);
		return 0;
	case WM_DESTROY:
		DeleteObject(hFont);
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

WM_CREATE¿¡¼­ ¿¡µðÆ® ÄÁÆ®·Ñ¿¡ »ç¿ëÇÒ ±Ã¼­ 20Çȼ¿ÀÇ ÆùÆ®¸¦ ¹Ì¸® »ý¼ºÇØ µÎ¾úÀ¸¸ç ¿¡µðÆ® ÄÁÆ®·Ñ·Î WM_SETFONT ¸Þ½ÃÁö¸¦ º¸³» ¾ÕÀ¸·Î ÀÌ ±Û²ÃÀ» »ç¿ëÇϵµ·Ï ÇÏ¿´´Ù. ÀÌ ´Ü°è¿¡¼­´Â ¾ÆÁ÷ ÄÁÆ®·ÑÀÌ È­¸é¿¡ º¸À̱â ÀüÀ̹ǷΠ´Ù½Ã ±×¸®±â¸¦ ÇÒ ÇÊ¿ä°¡ ¾øÀ¸¸ç µû¶ó¼­ lParamÀ¸·Î´Â FALSE¸¦ Àü´ÞÇÏ¿´´Ù. ¸¶¿ì½º ¿ÞÂÊ ¹öÆ°À» ´©¸£¸é ÀÌ ÆùÆ®·Î ´Ù½Ã º¯°æÇÏ¸ç ¸¶¿ì½º ¿À¸¥ÂÊ ¹öÆ°À» ´©¸£¸é ½Ã½ºÅÛ ÆùÆ®·Î µ¹¾Æ°£´Ù. À̶§´Â ½ÇÇàÁß¿¡ ÆùÆ®¸¦ º¯°æÇÏ´Â °ÍÀ̹ǷΠlParamÀº TRUE·Î ÁÖ¾î ÄÁÆ®·ÑÀÌ ÀÚ½ÅÀ» ´Ù½Ã ±×¸®µµ·Ï ÇØ ÁÖ¾î¾ß ÇÑ´Ù. WM_DESTROY¿¡¼­´Â ÆùÆ®¸¦ Á¦°ÅÇØ¾ß ÇÑ´Ù.

¿¹Á¦ 2

´ÙÀ½ ¿¹Á¦´Â ´ëÈ­»óÀÚÀÇ ¹öÆ° ÄÁÆ®·Ñ ÆùÆ®¸¦ ½ÇÇàÁß¿¡ ¸¶¿ì½º ÁÂ¿ì ¹öÆ°À» ´­·¯ º¯°æÇÑ´Ù.

HFONT hFont;
BOOL CALLBACK MainDlgProc(HWND hDlg,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	switch(iMessage) {
	case WM_INITDIALOG:
		hDlgMain = hDlg;
		hFont=CreateFont(35,0,0,0,0,0,0,0,HANGEUL_CHARSET,3,2,1,
			VARIABLE_PITCH | FF_ROMAN,"±Ã¼­");
		return TRUE;
	case WM_LBUTTONDOWN:
		SendDlgItemMessage(hDlg,IDC_BUTTON1,WM_SETFONT,(WPARAM)hFont,(LPARAM)TRUE);
		return 0;
	case WM_RBUTTONDOWN:
		SendDlgItemMessage(hDlg,IDC_BUTTON1,WM_SETFONT,(WPARAM)NULL,(LPARAM)TRUE);
		return 0;
	case WM_COMMAND:
		switch (LOWORD(wParam))
		{
		case IDOK:
		case IDCANCEL:
			EndDialog(hDlg,IDOK);
			DeleteObject(hFont);
			return TRUE;
		}
		return FALSE;
	}
	return FALSE;
}

ÆùÆ®¸¦ º¯°æÇÏ´õ¶óµµ ÄÁÆ®·Ñ ÀÚüÀÇ Å©±â´Â º¯ÇÏÁö ¾Ê±â ¶§¹®¿¡ ¾Æ·¡ ±×¸²Ã³·³ ÅؽºÆ®ÀÇ ÀϺθ¸ º¸ÀÏ ¼öµµ ÀÖ´Ù. ÀÌ·² ¶§´Â º¯°æµÉ ÆùÆ® Å©±â¿¡ ¸ÂÃß¾î ¹Ì¸® ÄÁÆ®·ÑÀ» Å©°Ô ¸¸µé¾î ³õ°Å³ª ¾Æ´Ï¸é ½ÇÇàÁß¿¡ ÆùÆ® Å©±â¿¡ ¸Â°Ô ÄÁÆ®·ÑÀÇ Å©±âµµ °°ÀÌ ´Ã·Á ÁÖ¾î¾ß ÇÑ´Ù.

Ç÷§Æû

95ÀÌ»ó

ÂüÁ¶

 


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