Структура 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.