Получите список шрифтов (Win32)

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

6
задан jmasterx 23 April 2010 в 21:47
поделиться

2 ответа

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

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

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

10
ответ дан 8 December 2019 в 17:19
поделиться

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

Дополнительные сведения см. в MSDN.

4
ответ дан 8 December 2019 в 17:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: