Поделиться через


Функция CreateFontIndirectA (wingdi.h)

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

Синтаксис

HFONT CreateFontIndirectA(
  [in] const LOGFONTA *lplf
);

Параметры

[in] lplf

Указатель на структуру LOGFONT , которая определяет характеристики логического шрифта.

Возвращаемое значение

Если функция выполняется успешно, возвращаемое значение является дескриптором логического шрифта.

Если функция завершается сбоем, возвращается значение NULL.

Комментарии

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

Чтобы получить соответствующий шрифт в разных языковых версиях ОС, вызовите EnumFontFamiliesEx с нужными характеристиками шрифта в структуре LOGFONT , получите соответствующее имя шрифта и создайте шрифт с помощью CreateFont или CreateFontIndirect.

Если шрифт больше не нужен, вызовите функцию DeleteObject , чтобы удалить его.

Шрифты для многих восточноазиатских языков имеют два названия шрифтов: английское и локализованное. CreateFont и CreateFontIndirect принимают локализованное имя шрифта только для языкового стандарта системы, соответствующего языку, в то время как они принимают имя шрифта на английском языке во всех остальных системных языковых стандартах. Лучший способ — попробовать одно имя, а в случае сбоя — другое. Обратите внимание, что EnumFonts, EnumFontFamilies и EnumFontFamiliesEx возвращают имя шрифта на английском языке, если языковой стандарт системы не соответствует языку шрифта.

Сопоставителя шрифтов для CreateFont, CreateFontIndirect и CreateFontIndirectEx распознает как английский, так и локализованное имя шрифта, независимо от языкового стандарта.

Примеры

Пример см. в разделе Создание логического шрифта.

Примечание

Заголовок wingdi.h определяет CreateFontIndirect в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header wingdi.h (включая Windows.h)
Библиотека Gdi32.lib
DLL Gdi32.dll

См. также раздел

CreateFont

CreateFontIndirectEx

DeleteObject

EnumFontFamilies

EnumFontFamiliesEx

EnumFonts

Функции шрифта и текста

Общие сведения о шрифтах и тексте

LOGFONT

SelectObject