Функция CreateFontIndirect создает логический шрифт, который имеет заданные характеристики. Шрифт может впоследствии быть выбран как текущий шрифт для любого контекста устройства.
Синтаксис
HFONT CreateFontIndirect( CONST LOGFONT* lplf // характеристики ); |
[in] Указатель на структуру LOGFONT, которая определяет характеристики логического шрифта.
Если функция завершается успешно, величина возвращаемого значения - дескриптор логического шрифта.
Если функция завершается с ошибкой, величина возвращаемого значения - ПУСТО (NULL).
Windows NT/2000/XP: Чтобы получить дополнительную информацию об ошибке, вызовите функцию GetLastError .
Функция CreateFontIndirect создает логический шрифт с характеристиками, заданными в структуре LOGFONT. Когда этот шрифт выбран при помощи использования функции SelectObject, механизм отображения логического шрифта в физический GDI пытается согласовать логический шрифт с существующим физическим шрифтом. Если это завершается ошибкой, чтобы найти точное соответствие, функция предусматривает альтернативный шрифт, характеристики которого насколько возможно соответствуют стольким же из требуемых характеристик .
Чтобы получать подходящий шрифт на других языковых версиях операционной системы, вызовите функцию EnumFontFamiliesEx с необходимыми характеристиками шрифта в структуре LOGFONT, извлеките соответствующее название гарнитуры шрифта, и создайте шрифт, используя функции CreateFont или CreateFontIndirect.
Когда вам больше не нужен шрифт, вызовите функцию DeleteObject, чтобы удалить его.
Windows 95/98/Me, Windows NT 4.0: Шрифты для многих Восточно-Азиатских языков имеют два названия гарнитуры шрифта: Английское название и название, привязанное к конкретной стране. Функции CreateFont, CreateFontIndirect и CreateFontIndirectEx берут привязанное к конкретной стране название гарнитуры шрифта в локальной системе, которое соответствует языку в ней, но они берут английское название гарнитуры шрифта на всех других языках локальной системы. Самый лучший способ состоит в том, чтобы попробовать одно имя и, при неудаче, попробовать другое.
Обратите внимание! на то, что функции EnumFonts, EnumFontFamilies и EnumFontFamiliesEx возвращают английское название гарнитуры шрифта, если язык конкретной страны в системе не соответствует языку шрифта. |
Windows 2000/XP: Механизм отображения логического шрифта в физический для CreateFont, CreateFontIndirect, и CreateFontIndirectEx признает, и английское, и привязанное к конкретной стране название гарнитуры шрифта, независимо от совокупности родственных национальных языков местности.
Windows 95/98/Me: CreateFontIndirectW поддерживается подпрограммой Microsoft Layer for Unicode. Чтобы использовать ее, Вы должны добавить некоторые файлы к вашему приложению, как изложено в требованиях этой подпрограммы для систем Windows 95/98/Me.
Пример смотри в статье Создание логического шрифта.
Обзор шрифты и текст, Функции, используемые шрифтами и текстом, CreateFont, CreateFontIndirectEx, DeleteObject , EnumFonts, EnumFontFamilies, EnumFontFamiliesEx, LOGFONT, SelectObject
Размещение и совместимость CreateFontIndirect |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
Gdi32.lib |
Заголовочный файл |
|
- объявлено в |
Wingdi.h |
- включено в |
Windows.h |
Unicode |
Реализуется как версии Unicode и ANSI в Windows NT /2000/XP. Поддерживается также подпрограммой Microsoft Layer for Unicode |
Замечания по платформе |
Не имеется |