Функция CreateFontIndirect

Функция CreateFontIndirect создает логический шрифт, который имеет заданные характеристики. Шрифт может впоследствии быть выбран как текущий шрифт для любого контекста устройства.

Синтаксис

HFONT CreateFontIndirect(
  CONST LOGFONT* lplf   // характеристики
);

Параметры

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

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz