Получить список шрифтов (Win32) - PullRequest
6 голосов
/ 24 апреля 2010

Я хочу создать комбинированное окно со всеми перечисленными в нем установленными шрифтами компьютера. Я не уверен, как это сделать. Нужно ли получить доступ к реестру, чтобы получить это? Спасибо

Ответы [ 2 ]

9 голосов
/ 24 апреля 2010

Вы должны использовать функцию Win32 API EnumFontFamiliesEx . Вы вызываете эту функцию, передавая функцию обратного вызова, соответствующую типу EnumFontFamExProc . Функция обратного вызова вызывается один раз для каждого шрифта, найденного EnumFontFamiliesEx.

Я бы рекомендовал использовать версию Unicode (EnumFontFamiliesExW), так как я видел, что версия ascii (EnumFontFamiliesExA) отображает очень странное поведение для восточноазиатских языковых шрифтов.

Связанные статьи имеют пример кода.

4 голосов
/ 24 апреля 2010

Winapi использует для этого функцию EnumFontFamiliesEx. Вы должны передать заполненную структуру с параметром по умолчанию DEFAULT_CHARSET, чтобы получить список всех установленных шрифтов.

См. MSDN для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...