Система хранит таблицу, содержащую все шрифты, которые могут использовать прикладные программы . Система выбирает шрифт из этой таблицы тогда, когда программа вызывает функцию CreateFont или CreateFontIndirect. В таблице может находится до 253 записей.
Ресурс шрифта - это группа отдельных шрифтов представляющая буквы (знаки) в заданном наборе символов, которые имеют различные комбинации высоты, ширины и наклона. Вы можете загружать ресурсы шрифта и добавлять шрифты в каждый ресурс в таблице шрифта операционной системы при помощи использования функции AddFontResource. Чтобы удалить ресурс шрифта из таблицы , Вы можете использовать функцию RemoveFontResource.
После того, как Вы добавите ресурс шрифта в таблицу шрифта, Вы можете использовать конкретные шрифты в ресурсе. Другими словами, функция CreateFont берет шрифты во внимание тогда, когда пробует согласовать физический шрифт с заданным логическим шрифтом. (Шрифты в таблице никогда непосредственно не доступны для приложения. Они доступны только через функции CreateFontIndirect и CreateFont, которые возвращают дескрипторы шрифтов, а не их адреса в памяти.)
Всякий раз, когда ваше приложение добавляет или удаляет ресурс шрифта, оно должно сообщить всем другим прикладным программам об изменениях, отправляя им сообщение WM_FONTCHANGE. Используйте нижеследующий вызов функции SendMessage, чтобы отправить это сообщение всем окнам.
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0); |
Вы можете использовать функцию GetProfileString, чтобы найти раздел [Fonts] в файле Win.ini со списком шрифтов, которые пользователь использует Панель управления (Windows) для инсталляции.