블로그 이미지
안녕1999

카테고리

전체 (3067)
자바스크립트 (20)
안드로이드 (14)
WebGL (4)
변비 (17)
정치,경제 (35)
C언어,ARM (162)
컴퓨터(PC, Note Book, 윈.. (41)
전자회로, PCB (27)
유머,안웃긴,GIF,동영상 (118)
국부론60 (71)
모듈(PCB) (3)
건강 (2)
FreeCAD (25)
PADS (43)
퇴직,퇴사,구직,취업 활동 (3)
C# (86)
엑셀 (8)
워드 (0)
LabView (6)
레고 (30)
FPGA (0)
Total
Today
Yesterday

CreateFont/CreateFontIndirect 함수로 폰트 생성시,

 

lfWidth=size;

lfPitchAndFamily=FIXED_PITCH;//고정폭

lfQuality=NONANTIALIASED_QUALITY;//폰트색이 부분 부분 칼라로 나오는 문제

 

class CFont2
{
public:
	HFONT m_hFont,m_hFont_old;
	HDC m_hdc;
	LOGFONT m_logfont;
	CFont2(HDC hdc,TCHAR *name,int size)
	{
		m_hFont=0;
		m_hFont_old=0;
		m_hdc=hdc;
		memset(&m_logfont,0,sizeof(m_logfont));
		//m_logfont.lfHeight== -MulDiv(size, GetDeviceCaps(hdc,LOGPIXELSY),72);
		m_logfont.lfWidth=size;
		//m_logfont.lfEscapement;
		//m_logfont.lfOrientation;
		//m_logfont.lfWeight=FW_BOLD;
		//m_logfont.lfItalic;
		//m_logfont.lfUnderline;
		//m_logfont.lfStrikeOut;
		m_logfont.lfCharSet=OEM_CHARSET;
		//m_logfont.lfOutPrecision;
		//m_logfont.lfClipPrecision=OUT_DEFAULT_PRECIS;
		m_logfont.lfQuality=NONANTIALIASED_QUALITY;//폰트색이 부분 부분 칼라로 나오는 문제
		m_logfont.lfPitchAndFamily=FIXED_PITCH;//고정폭
		strcpy(m_logfont.lfFaceName,name);

		CreateSelect(name,size);
	}
	HFONT CreateSelect(TCHAR *name,int size)//ret=m_hFont_old
	{
		Delete();

		m_logfont.lfWidth=size;
		strcpy(m_logfont.lfFaceName,name);
		m_hFont=CreateFontIndirect(&m_logfont);
		if(m_hFont)
		{
			m_hFont_old=(HFONT)SelectObject(m_hdc,m_hFont);
		}
		return m_hFont_old;
	}
	void Delete()
	{
		if(m_hFont_old)
		{
			SelectObject(m_hdc,m_hFont_old);
			m_hFont_old=0;
		}
		if(m_hFont)
		{
			DeleteObject(m_hFont);
			m_hFont=0;
		}
	}
	~CFont2()
	{
		Delete();
	}
};

 

 

Posted by 안녕1999
, |

최근에 달린 댓글

글 보관함