6-5-³ª. Font.dsw

ÆùÆ® ¿ÀºêÁ§Æ®¸¦ »ç¿ëÇÏ´Â ¾ÆÁÖ °£´ÜÇÑ ¿¹Á¦¸¦ ¸¸µé¾î º¸ÀÚ. ÆæÀ̳ª ºê·¯½Ã¿Í °ÅÀÇ µ¿ÀÏÇÑ ¹æ¹ýÀ¸·Î ¸¸µé°í »ç¿ëÇÏ¸é µÈ´Ù. ¼Ò½º´Â ´ÙÀ½°ú °°´Ù.

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	HFONT font, oldfont;
	char str[]="ÆùÆ® Test 1234";
	switch(iMessage) {
	case WM_PAINT:
		hdc=BeginPaint(hWnd, &ps);
		font=CreateFont(50,0,0,0,0,0,0,0,HANGEUL_CHARSET,0,0,0,0,"±Ã¼­");
		oldfont=(HFONT)SelectObject(hdc,font);
		TextOut(hdc, 100,100,str,strlen(str));
		SelectObject(hdc,oldfont);
		DeleteObject(font);
		EndPaint(hWnd, &ps);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

±Ã¼­Ã¼ÀÇ 50Çȼ¿ ³ôÀ̸¦ °¡Áö´Â ÆùÆ® ¿ÀºêÁ§Æ®¸¦ ¸¸µç ÈÄ ÀÌ ÆùÆ®¸¦ DC¿¡ ¼±ÅÃÇÏ°í ¹®ÀÚ¿­À» Ãâ·ÂÇÏ¿´´Ù. Ãâ·Â °á°ú´Â ´ÙÀ½°ú °°´Ù.

ÀμöÀÇ °³¼ö°¡ Á» ¸¹À»»Ó ÆæÀ̳ª ºê·¯½Ã¿Í º°¹Ý ´Ù¸¦ ¹Ù°¡ ¾ø´Ù. CreateFont ÇÔ¼ö·Î ÆùÆ®ÀÇ ¸ðµç ¼ºÁúÀ» ´Ù Àü´ÞÇØ ÁÖ´Â ¹æ¹ý¿Ü¿¡ LOGFONT ±¸Á¶Ã¼¸¦ »ç¿ëÇÏ¿© ÆùÆ®¸¦ Á¤ÀÇÇÏ°í CreateFontIndirect ÇÔ¼ö·Î ÆùÆ®¸¦ ¸¸µå´Â ¹æ¹ýµµ ÀÖ´Ù.

typedef struct tagLOGFONT { // lf    
	LONG lfHeight;    
	LONG lfWidth; 
	LONG lfEscapement;    
	LONG lfOrientation;
    LONG lfWeight; 
	BYTE lfItalic;
    BYTE lfUnderline;
    BYTE lfStrikeOut;
    BYTE lfCharSet; 
	BYTE lfOutPrecision;
    BYTE lfClipPrecision;
    BYTE lfQuality; 
	BYTE lfPitchAndFamily;
    TCHAR lfFaceName[LF_FACESIZE]; 
} LOGFONT;

LOGFONT ±¸Á¶Ã¼´Â CreateFont ÇÔ¼öÀÇ Àμö Àüü¸¦ ¸â¹ö º¯¼ö·Î °¡Áö´Â ±¸Á¶Ã¼À̸ç ÀÌ ±¸Á¶Ã¼¿¡ ¿øÇÏ´Â °ªÀ» ¸ÕÀú ´ëÀÔÇÑ ÈÄ CreateFontIndirect ÇÔ¼ö·Î ÀÌ ±¸Á¶Ã¼ÀÇ ¹øÁö¸¦ ³Ñ°ÜÁÖ¸é µÈ´Ù.

HFONT CreateFontIndirect( CONST LOGFONT *lplf);

LOGFONT ±¸Á¶Ã¼¿¡¼­ ÆùÆ®ÀÇ Æ¯¼ºÀ» ´Ù Á¤ÀÇÇϹǷΠÇÔ¼ö´Â ÀÌ ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅ͸¸ Àμö·Î Àü´Þ¹Þ´Â´Ù. LOGFONT ±¸Á¶Ã¼¸¦ »ç¿ëÇÏ¿© À§ ¿¹Á¦¸¦ ´Ù½Ã ÀÛ¼ºÇØ º¸¸é ´ÙÀ½°ú °°´Ù.

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	HFONT font, oldfont;
	char str[]="ÆùÆ® Test 1234";
	LOGFONT lf;
	switch(iMessage) {
	case WM_PAINT:
		hdc=BeginPaint(hWnd, &ps);
		lf.lfHeight=50;
		lf.lfWidth=0;
		lf.lfEscapement=0;
		lf.lfOrientation=0;
		lf.lfWeight=0;
		lf.lfItalic=0;
		lf.lfUnderline=0;
		lf.lfStrikeOut=0;
		lf.lfCharSet=HANGEUL_CHARSET;
		lf.lfOutPrecision=0;
		lf.lfClipPrecision=0;
		lf.lfQuality=0;
		lf.lfPitchAndFamily=0;
		strcpy(lf.lfFaceName,"±Ã¼­");
		font=CreateFontIndirect(&lf);
		oldfont=(HFONT)SelectObject(hdc,font);
		TextOut(hdc, 100,100,str,strlen(str));
		SelectObject(hdc,oldfont);
		DeleteObject(font);
		EndPaint(hWnd, &ps);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

Ãâ·Â °á°ú´Â ¹°·Ð CreateFont ÇÔ¼ö¸¦ »ç¿ëÇÑ °Í°ú µ¿ÀÏÇÏ´Ù. CreateFont ÇÔ¼öÀÇ Àμö¿¡ ÆùÆ®ÀÇ Æ¯Â¡À» ¸ðµÎ ¿­°ÅÇØ ÁÖ´Â ¹æ¹ý¿¡ ºñÇØ LOGFONT ±¸Á¶Ã¼¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀº ¸î°¡Áö ÀåÁ¡À» °¡Áö°í ÀÖ´Ù. ¿©·¯¹úÀÇ ÆùÆ® °´Ã¼¸¦ ¸¸µé¾î¾ß ÇÒ ¶§ LOGFONTÀÇ ¸â¹öÁß ÀϺθ¸À» º¯°æÇÏ¿© Àç»ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç ¶ÇÇÑ LOGFONT ±¸Á¶Ã¼ ¹è¿­À» »ç¿ëÇÏ¸é »ç¿ëÇÒ ÆùÆ®ÀÇ ¸ñ·ÏÀ» ¹Ì¸® ÀÛ¼ºÇØ ³õÀ» ¼öµµ ÀÖ´Ù.

Win32 API´Â ÀÌ ¿¹¿¡¼­¿Í °°ÀÌ ÇÔ¼ö¸í µÚ¿¡ Indirect°¡ ºÙÀº ÇÔ¼öµéÀÌ Àִµ¥ ÀÌ ÇÔ¼öµéÀº °øÅëÀûÀ¸·Î ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅ͸¦ Àμö·Î ÃëÇѴٴ Ư¡À» °¡Áö°í ÀÖ´Ù. CreatePenIndirect, CreateBrushIndirect µîÀÇ ÇÔ¼öµéÀÌ ÀÖ´Ù.


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