Visual C++ MFC в подробностях - Структура LOGFONT
ОГЛАВЛЕНИЕ
Структура LOGFONT
Шрифты в Windows описываются в структуре LOGFONT, поля которой перечислены ниже. Большинство из них может иметь значение 0 или значение по умолчанию - все зависит от конкретной ситуации в приложении.
| Поле | Описание |
|---|---|
| lfHeight | Высота шрифта, логических единиц |
| lfWidth | Ширина шрифта, логических единиц |
| lfEscapement | Угол нанесения текста - угол между базовой линией текста и горизонталью (десятые доли градуса) |
| lfOrientation | Наклон символов (десятые доли градуса) |
| lfWeight | Толщина линий начертания шрифта ("жирность") |
| lfItalic | Ненулевое значение означает курсив |
| lfUnderline | Ненулевое значение означает подчеркивание |
| lfStrikeOut | Ненулевое значение означает перечеркнутый шрифт |
| lfCharSet | Номер набора символов шрифта - таблицы кодировки |
| lfOutPrecision | Параметр, определяющий соответствие запрашиваемого шрифта и имеющегося в наличии |
| lfClipPrecision | Параметр, определяющий способ "обрезания" изображения литер при их выходе за пределы области ограничения вывода |
| lfQuality | Качество воспроизведения шрифта |
| lfPitchAndFamily | Это поле определяет, будет ли шрифт иметь фиксированную или переменную ширину литер, а также семейство, к которому принадлежит шрифт |
| lfName | Имя шрифта |
Какой высоты, например, будут литеры шрифта, для которого в поле lfHeight задано значение 8 логических единиц? Значение логической единицы определяется режимом наложения (mapping mode). Соответствие между режимом наложения и значением логической единицы видно ниже.
Режимы наложения (mapping mode):
| Режим | Логическая единица | Координата X | Координата Y |
|---|---|---|---|
| Возрастание координат | |||
| MM_HIENGLISH | 0,001 дюйма | Слева направо | Снизу вверх |
| MM_HIMETRIC | 0,01 мм | Слева направо | Снизу вверх |
| MM_ISOTROPIC | Произвольное | Определяется | Определяется |
| MM_LOENGLISH | 0,01 дюйма | Слева направо | Снизу вверх |
| MM_LOMETRIC | 0,1 мм | Слева направо | Снизу вверх |
| MM_TEXT | Пиксель устройства | Слева направо | Сверху вниз |
| MM_TWIPS | 1/1440 дюйма | Слева направо | Снизу вверх |
Толщина шрифта есть параметр, характеризующий некоторым посредственным образом толщину контурных линий литер. Для этого поля определен набор констант: FW_DONTCARE, FW_THIN, FW_EXTRALIGHT, FW_NORMAL, FW_ULTRALIGHT, FW_LIGHT, FW_REGULAR, FW_MEDIUM, FW_SEMIBOLD, FW_DEMIBOLD, FW_BOLD, FW_EXTRABOLD, FW_ULTRABOLD, FW_BLACK, FW_HEAVY. Не все шрифты могут принимать любое из указанных значений толщины.
Существует четыре возможных варианта шрифтов: ANSI_CHARSET, OEM_CHARSET, SYMBOL_CHARSET, UNICODE_CHARSET
Например, для написания только английским шрифтом следует воспользоваться вариантом ANSI_CHARSET.
