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


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

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

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

Синтаксис

int AddFontResourceA(
  [in] LPCSTR unnamedParam1
);

Параметры

[in] unnamedParam1

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

Расширение файла Значение
.fon
Файл ресурсов шрифта.
.Fnt
Необработанный файл точечных шрифтов.
.ttf
Необработанный файл TrueType.
.Ttc
Восточноазиатские окна: коллекция шрифтов TrueType.
.Фот
Файл ресурсов TrueType.
.Otf
Шрифт OpenType PostScript.
.Ммм
Несколько master файл ресурсов шрифта Type1. Его необходимо использовать с PFM- и PFB-файлами.
.Pfb
Введите 1 файл битов шрифта. Он используется с PFM-файлом.
.Pfm
Введите файл метрик шрифта 1. Он используется с PFB-файлом.
 

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

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

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

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

Комментарии

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

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

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

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

Примечание

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

Требования

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

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

AddFontResourceEx

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

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

RemoveFontResource

SendMessage