FAQ:WinAPI VCPP:сменить шрифт контекста устройства

Материал из Весельчак У
Версия от 20:40, 30 июля 2008; RXL (обсуждение | вклад) (Новая: ===Как сменить шрифт при выводе текста на CDC?=== <code cpp> //создаём свой шрифт CFont font; LOGFONT logfont; memset(&logfont, 0, size...)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Как сменить шрифт при выводе текста на CDC?

//создаём свой шрифт
CFont font; 
LOGFONT logfont;
 
memset(&logfont, 0, sizeof(LOGFONT));
logfont.lfWeight = FW_NORMAL;
logfont.lfHeight = -MulDiv(14, pDC->GetDeviceCaps(LOGPIXELSY), 72);
logfont.lfCharSet = RUSSIAN_CHARSET;
logfont.lfUnderline = FALSE;
logfont.lfItalic = FALSE;
logfont.lfOutPrecision = OUT_TT_PRECIS;
logfont.lfPitchAndFamily = FF_ROMAN;
logfont.lfQuality = DEFAULT_QUALITY;
strcpy(logfont.lfFaceName, "Arial");
font.CreateFontIndirect(&logfont);
 
//сохраняем адрес старого шрифта контекста
CFont* pOldFont = pDC->SelectObject(&font);
 
//выводим цветной текст с прозрачным фоном
pDC->SetTextColor(RGB(120, 100, 255));
pDC->SetBkMode(TRANSPARENT);
 
pDC->TextOut(0, 0, "Шрифт Arial", 12/*символов*/);
 
//после использования твоего возвращаем старый на место
pDC->SelectObject(&pOldFont);