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


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

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

Чтобы пометить шрифт как закрытый или не перечислимый, используйте функцию AddFontResourceEx.

Синтаксис

int AddFontResourceA(
  [in] LPCSTR unnamedParam1
);

Параметры

[in] unnamedParam1

Указатель на строку символов, завершающую значение NULL, содержащую допустимое имя файла шрифта. Этот параметр может указать любой из следующих файлов.

Расширение файла Значение
.fon
Файл ресурса шрифта.
.fnt
Необработанный файл шрифта растрового изображения.
.ttf
Необработанный файл TrueType.
.ttc
Коллекция шрифтов TrueType в Восточной Азии.
.fot
Файл ресурса TrueType.
.otf
Шрифт PostScript OpenType.
.mmm
Несколько файлов ресурсов шрифта master Type1. Он должен использоваться с файлами .pfm и pfb.
.pfb
Введите 1 файл битов шрифта. Он используется с pfm-файлом.
.pfm
Введите 1 файл метрик шрифта. Он используется с pfb-файлом.
 

Чтобы добавить шрифт, сведения которого исходят из нескольких файлов ресурсов, lpszFileName указывать на строку с именами файлов, разделенными "|", например abcxxxx.pfm | abcxxx.pfb.

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

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

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

Замечания

Любое приложение, которое добавляет или удаляет шрифты из системной таблицы шрифтов, должно уведомлять другие окна изменений, отправляя WM_FONTCHANGE сообщение всем окнам верхнего уровня в операционной системе. Приложение должно отправить это сообщение, вызвав функцию SendMessage и установив параметр для HWND_BROADCAST.

Если приложению больше не нужен ресурс шрифта, загруженный путем вызова функции AddFontResource, он должен удалить этот ресурс, вызвав функцию RemoveFontResource.

Эта функция устанавливает шрифт только для текущего сеанса. При перезапуске системы шрифт не будет присутствовать. Чтобы установить шрифт даже после перезапуска системы, в реестре должен быть указан шрифт.

Шрифт, указанный в реестре и установленный в расположении, отличном от папки %windir%\fonts\, не может быть изменен, удален или заменен до тех пор, пока он загружен в любом сеансе. Чтобы изменить один из этих шрифтов, сначала его необходимо удалить, вызвав RemoveFontResource, удален из реестра шрифтов (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts), а система перезапущена. После перезапуска системы шрифт больше не будет загружен и может быть изменен.

Заметка

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка wingdi.h (включая Windows.h)
библиотеки Gdi32.lib
DLL Gdi32.dll

См. также

AddFontResourceEx

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

шрифтов и текста

RemoveFontResource

SendMessage