Впечатляет, правда? И так, по каждой составляющей:
lfHeight
- высота шрифта, то бишь, размер. Всегда задается в точках и ни каких там поинтов. Для перевода из поинтов используйте рекомендуемую во всех хелпах формулу:
lfHeight
- MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72);
lfWidth
- коэффициент сжатия по горизонтали. Значения 0 и 100 ни к чему не приводят. Меньше 100 ужимают всю строку искажая начертание, больше 100 - растягивает. При выводе на экран наблюдается дискретность равная 10, т.е. к примеру, 53 и 50 дают одинаковый результат.
lfEscapement
- угол поворота всей строки в десятых градуса против часовой стрелки.
lfOrientation
- угол поворота отдельных символов в строке в десятых градуса против часовой стрелки.
lfWeight
- плотность шрифта. Задается в диапазоне 0..1000. Я проверял - работает только 400 как обычный и 700 как жирный.
lfItalic, lfUnderline, lfStrikeOut
- ненулевое значение задает соответственно курсив, подчеркивание, перечеркивание.
lfCharSet
- набор символов. Чтобы не читать иероглифы, задайте как RUSSIAN_CHARSET.
lfOutPrecision
- точность вывода. Рекомендуют задавать OUT_TT_ONLY_PRECIS
lfClipPrecision
- точность отсечения символов. Рекомендуют задавать CLIP_DEFAULT_PRECIS.
lfQuality
- качество вывода шрифта. Ставьте PROOF_QUALITY - не помешает. Ну а про использование ANTIALIASED_QUALITY Вы в курсе - работает только начиная с Win98.
lfPitchAndFamily
- в двух младших разрядах указывается тип шрифта, а в четырех старших - семейство. Этот параметр можно не задавать, если указать имя существующего шрифта.
lfFaceName
- имя шрифта.
Остальные функции, предназначены для получения различной информации о шрифтах, размерах и т.п. (GetTextExtentPoint, EnumFontFamiliesEx, GetFontData, GetCharABCWidths, GetCharWidthFloat и т.д.), но это уже другая тема.
Автор: Олег Грабец
- << Назад
- Вперёд
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!