Структура LOGFONT определяет атрибуты шрифта.
Синтаксис
typedef struct tagLOGFONT { LONG lfHeight; LONG lfWidth; LONG lfEscapement; LONG lfOrientation; LONG lfWeight; BYTE lfItalic; BYTE lfUnderline; BYTE lfStrikeOut; BYTE lfCharSet; BYTE lfOutPrecision; BYTE lfClipPrecision; BYTE lfQuality; BYTE lfPitchAndFamily; TCHAR lfFaceName[LF_FACESIZE]; } LOGFONT, *PLOGFONT; |
Значение | Предназначение |
---|---|
> 0 | Механизм отображения логического шрифта в физический преобразует эту величину в единицы измерения устройства (пиксели) и приводит в его соответствие, сверяя с высотой ячейки доступных шрифтов. |
0 | Механизм отображения логического шрифта в физический использует заданное по умолчанию значение высоты, когда он ищет соответствие. |
< 0 | Механизм отображения логического шрифта в физический преобразует эту величину в единицы измерения устройства (пиксели) и приводит в соответствие его абсолютную величину, сверяя с высотой символов доступных шрифтов. |
Из всех сравнений высоты, механизм отображения логического шрифта в физический ищет наибольший шрифт, который не выходит за пределы требуемого размера.
Это отображение происходит тогда, когда шрифт используется с самого начала.
Для режима отображения MM_TEXT, Вы можете использовать ниже следующее формулу, чтобы установить высоту для шрифта с заданным размером в пунктах:
lfHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72); |
Windows NT/2000/XP: Когда графический режим
устанавливается с флажком GM_ADVANCED,
Вы можете задать угол наклона строки
независимо от ориентации угла символов
строки.
Когда графический режим
устанавливается с флажком GM_COMPATIBLE,
член lfEscapement задает и наклон и
ориентацию. Вы должны установить члены lfEscapement
и lfOrientation в одно и то же значение.
Windows 95/98/Me: член lfEscapement задает и наклон и ориентацию. Вы должны установить члены lfEscapement и lfOrientation в одно и то же значение.
Ниже следующее значения определяются для удобства.
Значение | Толщина |
---|---|
FW_DONTCARE | 0 |
FW_THIN | 100 |
FW_EXTRALIGHT | 200 |
FW_ULTRALIGHT | 200 |
FW_LIGHT | 300 |
FW_NORMAL | 400 |
FW_REGULAR | 400 |
FW_MEDIUM | 500 |
FW_SEMIBOLD | 600 |
FW_DEMIBOLD | 600 |
FW_BOLD | 700 |
FW_EXTRABOLD | 800 |
FW_ULTRABOLD | 800 |
FW_HEAVY | 900 |
FW_BLACK | 900 |
ANSI_CHARSET
BALTIC_CHARSET
CHINESEBIG5_CHARSET
DEFAULT_CHARSET
EASTEUROPE_CHARSET
GB2312_CHARSET
GREEK_CHARSET
HANGUL_CHARSET
MAC_CHARSET
OEM_CHARSET
RUSSIAN_CHARSET
SHIFTJIS_CHARSET
SYMBOL_CHARSET
TURKISH_CHARSET
VIETNAMESE_CHARSET
- Выпуск Windows на корейском языке:
- JOHAB_CHARSET
- Выпуск Windows на языках Ближнего Востока:
- ARABIC_CHARSET
HEBREW_CHARSET- Выпуск Windows на тайском языке:
- THAI_CHARSET
Значение OEM_CHARSET устанавливает набор символов, который является зависимым от операционной системы.
Windows 95/98/Me: Вы можете использовать значение DEFAULT_CHARSET, чтобы дать возможность полностью описывать название и размер логического шрифта. Если указанное имя шрифта не существует, шрифт из любого набора символов может быть заменен указанным шрифтом, так что вам следует мало использовать флажок DEFAULT_CHARSET, чтобы избежать неожиданных результатов.
Windows NT/2000/XP: флажок DEFAULT_CHARSET
устанавливается в значение, основанное на
текущем языке конкретной страны в системе.
Например, когда язык конкретной страны в
системе является английским (Соединенные
Штаты), он устанавливается как ANSI_CHARSET.
Шрифты других наборов
символов также могут существовать в
операционной системе. Если приложение
использует шрифт с неизвестным набором
символов, оно не должно пытаться
транслировать или интерпретировать
строки, которые представлены при помощи
этого шрифта. Этот параметр важен в процессе
подстановки шрифтов. Чтобы гарантировать
совместимые результаты, задайте
конкретный набор символов. Если Вы
устанавливаете название гарнитуры шрифта
в члене lfFaceName то, удостоверьтесь,
что величина lfCharSet соответствует
набору символов гарнитуры шрифта,
указанной в lfFaceName.
Значение | Предназначение |
---|---|
OUT_CHARACTER_PRECIS | Не используется. |
OUT_DEFAULT_PRECIS | Устанавливает заданное по умолчанию поведение механизма отображения логического шрифта в физический. |
OUT_DEVICE_PRECIS | Указывает механизму отображения логического шрифта в физический, чтобы выбрать шрифт поставляемый устройством, когда система содержит многокомпонентные шрифты с тем же самым названием. |
OUT_OUTLINE_PRECIS | Windows NT/2000/XP: Это значение указывает механизму отображения логического шрифта в физический, который выбирает из шрифта формата TrueType и других шрифтов на основе контура |
OUT_RASTER_PRECIS | Указывает механизму отображения логического шрифта в физический, чтобы выбрать растровый шрифт, когда система содержит многочисленные шрифты с тем же самым названием. |
OUT_STRING_PRECIS | Это значение не используется механизмом отображения логического шрифта в физический, но оно возвращается, когда перечисляются растровые шрифты. |
OUT_STROKE_PRECIS |
Windows NT/2000/XP: Это значение не
используется механизмом отображения
логического шрифта в физический, но оно
возвращается, когда перечисляются шрифты
формата TrueType, другие шрифты на основе
контура и векторные шрифты. Windows 95: Это значение используется, когда преобразуются векторные шрифты и возвращается, когда перечисляется шрифты формата TrueType или векторные шрифты. |
OUT_TT_ONLY_PRECIS | Указывает механизму отображения логического шрифта в физический, чтобы выбирать из только шрифтов TrueType. Если шрифтов TrueType установленных в системе нет, механизм отображения логического шрифта в физический возвращается к заданному по умолчанию поведению. |
OUT_TT_PRECIS | Указывает механизму отображения логического шрифта в физический, чтобы выбрать шрифт TrueType, когда система содержит многочисленные шрифты с тем же самым названием. |
Приложения могут использовать флажки OUT_DEVICE_PRECIS, OUT_RASTER_PRECIS и OUT_TT_PRECIS, чтобы управлять механизмом отображения логического шрифта в физический при выборе шрифта, когда операционная система содержит больше чем один шрифт с указанным названием. Например, если операционная система содержит растровый шрифт по имени Symbol и в формате TrueType, определение флажка OUT_TT_PRECIS вынуждает механизм отображения логического шрифта в физический выбрать версию шрифта формата TrueType. Определение флажка OUT_TT_ONLY_PRECIS вынудило бы механизм отображения логического шрифта в физический выбрать шрифт TrueType, даже если он использует вместо указанного шрифт TrueType другого названия.
Значения | Предназначение |
---|---|
CLIP_DEFAULT_PRECIS | Устанавливает характер операции отсечения по умолчанию. |
CLIP_CHARACTER_PRECIS | Не используется. |
CLIP_STROKE_PRECIS |
Не используется механизмом отображения
логического шрифта в физический, но
возвращается, когда перечисляются
растровые, векторные или шрифты TrueType.
Windows NT/2000/XP: Для совместимости, это значение всегда возвращается при перечислении шрифтов. |
CLIP_MASK | Не используется. |
CLIP_EMBEDDED | Вы должны устанавливать этот флажок для того, чтобы использовать внедренный шрифт только для чтения. |
CLIP_LH_ANGLES |
Когда используется это
значение, вращение, сдвиг для всех
шрифтов зависит от того, является ли
ориентация системы координат
левосторонней или правосторонней. Если флажок не используется, шрифты устройства всегда вращаются против часовой стрелки, но вращение других шрифтов зависит от ориентации системы координат. Более подробную информации об ориентации систем координат, см. в описании параметра nOrientation. |
CLIP_TT_ALWAYS | Не используется. |
Значение | Предназначение |
---|---|
ANTIALIASED_QUALITY |
Windows NT 4.0 и старше:
Шрифт
всегда сглаживается, если шрифт
поддерживает это действие, и размер
шрифта определяется и не слишком
маленьким и не слишком большим.
Windows 95 Plus!, Windows 98/Me: Вывод на экран должен иметь цвет больше чем 8- битовый, это должно быть одноплоскостное устройство, он не может быть палитрой дисплея, и он не может быть в нескольких установленных экранах монитора. Кроме того, Вы должны выбрать шрифт TrueType в контексте устройства (DC) экрана до использования флажка в DIBSection, в противном случае сглаживание не происходит. |
CLEARTYPE_QUALITY | Windows XP: Если он установлен, текст (когда возможно) изображается с плавным переходом полутонов, используя ClearType метод сглаживания . См. Замечания с подробной информацией. |
DEFAULT_QUALITY | Вид шрифта не имеет значения. |
DRAFT_QUALITY | Вид шрифта менее важен, чем в случае, когда используется флажок PROOF_QUALITY. Для растровых шрифтов графического интерфейса устройств, допускается масштабирование, которое означает, что, доступно больше размеров шрифта , но качество может быть ниже. Полужирный, курсивный, подчеркнутый, и зачеркнутый шрифты синтезируются в случае необходимости. |
NONANTIALIASED_QUALITY | Windows 95/98/Me, Windows NT 4.0 и старше: Шрифт никогда не сглаживается. |
PROOF_QUALITY | Качество символов шрифта более важно, чем точное соответствие атрибутов логического шрифта. Для растровых шрифтов графического интерфейса устройства (GDI), масштабирование заблокировано, и выбирается наиболее близкий по размеру шрифт. Хотя выбранный размер шрифта не может быть отображен точно, когда используется флажок PROOF_QUALITY, качество шрифта высокое и нет никаких проявлений искажения. Полужирные, курсивные, подчеркнутые, и зачеркнутые шрифты синтезируются в случае необходимости. |
Если ни ANTIALIASED_QUALITY, ни NONANTIALIASED_QUALITY не выбираются, шрифт выравнивается только тогда, если пользователь выбирает в Панели управления гладкие шрифты для видеотерминала .
DEFAULT_PITCH
FIXED_PITCH
VARIABLE_PITCH
Биты с 4 по 7 этого члена структуры устанавливают семейство шрифта и могут быть одним из ниже перечисленных значений.
FF_DECORATIVE
FF_DONTCARE
FF_MODERN
FF_ROMAN
FF_SCRIPT
FF_SWISS
Подходящее значение может быть получено при помощи использования Булева оператора OR, чтобы соединить константу какой-то ширины символов с какой-то константой семейства.
Семейства шрифта описывают внешний вид шрифта в общих чертах. Они предназначены для того, чтобы определить шрифты, когда необходимая точная гарнитура шрифта не доступна. Значения для семейств шрифта следующие.
Значение | Предназначение |
---|---|
FF_DECORATIVE | Нововведенные шрифты. Старинный английский готический шрифт - пример. |
FF_DONTCARE | Не интересует или незнакомый шрифт. |
FF_MODERN | Шрифты фиксированной ширины, с или без засечек. Шрифты фиксированной ширины обычно современные. Пример тому - шрифты Pica, Elite и CourierNew®. |
FF_ROMAN | Шрифты с переменной шириной штриха (пропорциональные) и с засечками. Пример - MS® Serif. |
FF_SCRIPT | Шрифты, разработанные, чтобы выглядеть подобно рукописным. Примеры Script и Cursive. |
FF_SWISS | Шрифты с переменной шириной штриха (пропорциональный) и без засечек. Пример MS® Sans Serif. |
Windows XP: Ниже следующее
ситуации не поддерживают сглаживание
технологии ClearType:
Обзор шрифты и текст, Структуры, используемые шрифтами и текстом, CreateFont, CreateFontIndirect, EnumFontFamiliesEx
Размещение и совместимость LOGFONT |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.1 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Заголовочный файл |
|
- объявлено в |
Wingdi.h |
- включено в |
Windows.h |
Unicode |
Объявлены как структуры Unicode и ANSI |
Замечания по платформе |
Не имеется |