CFont 클래스를 이용한 출력
WM_PAINT 메세지 핸들러 등록
void C클래스View::OnPaint()
{
CPaintDC dc(this);
TCHAR szBuffer[128];
ZeroMemory(szBuffer, 128);
CFont font;
font.CreateFont(
-MulDiv(9, dc.GetDeviceCaps(LOGPIXELSY), 72),
0,
0,
0,
FW_NORMAL,
FALSE,
FALSE,
0,
HANGEUL_CHARSET,
OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH | FF_DONTCARE,
_T("궁서")
);
_stprintf_s(szBuffer, _T("%s"), _T("CFont 클래스를 이용한 출력"));
dc.SelectObject(&font);
dc.TextOut(20, 20, szBuffer, _tcslen(szBuffer));
_stprintf_s(szBuffer, _T("%s"), _T("시스템폰트를 이용한 출력"));
dc.SelectStockObject(SYSTEM_FONT);
dc.SetBkColor(RGB(0, 0, 100));
dc.SetTextColor(RGB(255, 255, 255));
dc.TextOut(20, 40, szBuffer, _tcslen(szBuffer));
font.DeleteObject();
}
LOGFONT를 이용한 문자 출력
새 함수 추가 PrintText
void CTextFontTestView::PrintText(CDC *pDC)
{
// TODO: 여기에 구현 코드 추가.
LOGFONT lf;
lf.lfHeight = -MulDiv(9, pDC->GetDeviceCaps(LOGPIXELSY), 72);
lf.lfWidth = 0;
lf.lfEscapement = 0;
lf.lfOrientation = 0;
lf.lfWeight = FW_NORMAL;
lf.lfItalic = FALSE;
lf.lfUnderline = FALSE;
lf.lfStrikeOut = 0;
lf.lfCharSet = HANGEUL_CHARSET;
lf.lfOutPrecision = OUT_DEFAULT_PRECIS;
lf.lfClipPrecision = CLIP_DEFAULT_PRECIS;
lf.lfQuality = DEFAULT_QUALITY;
lf.lfPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE;
_stprintf_s(lf.lfFaceName, _T("%s"), _T("굴림"));
CFont* pNewFont = new CFont;
CFont* pOldFont = NULL;
pNewFont->CreateFontIndirect(&lf);
pOldFont = pDC->SelectObject(pNewFont);
pDC->SetBkMode(OPAQUE);
pDC->SetBkColor(::GetSysColor(COLOR_ACTIVEBORDER));
pDC->SetTextColor(RGB(255, 255, 255));
pDC->TextOut(20, 70, _T("LOGFONT를 이용한 문자 출력"));
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(::GetSysColor(COLOR_GRAYTEXT));
pDC->TextOut(19, 69, _T("LOGFONT를 이용한 문자 출력"));
pDC->SelectObject(pOldFont);
delete pNewFont;
}
'MFC' 카테고리의 다른 글
Enumerating the Installed Fonts (0) | 2019.03.17 |
---|---|
CView에서 CScrollView로 변경하기 (0) | 2019.03.17 |
CPen CBrush (0) | 2019.03.17 |
보안이 강화된 적용된 함수 (0) | 2019.03.16 |
시스템에 있는 리소스를 이용해서 커서(cursor) 바꾸기 (0) | 2019.03.12 |