Как проверить установленные стили шрифтов? - PullRequest
0 голосов
/ 23 мая 2018

Мне нужен список всех установленных шрифтов на клиентском компьютере (всегда Windows), которые содержат стили полужирный , курсив и полужирный курсивный .Есть ли функция для этого?

Я уже могу перечислить все установленные шрифты с помощью EnumFontFamiliesEx, и я полагаю, что это возможно, чтобы отфильтровать этот список, но я ищу "лучший способ":)

Спасибо!
PS: Я использую C ++ с MFC.

РЕДАКТИРОВАТЬ:
Для шрифтов, которые не 'У этих стилей Windows не может «подделать» такое поведение (заставить шрифт выглядеть жирным или курсивом), но мне нужно знать, какие шрифты действительно имеют эти стили.

1 Ответ

0 голосов
/ 23 мая 2018

Поскольку вы используете «EnumFontFamiliesEx», функция обратного вызова получает структуру LOGFONT ....

LOGFONT имеет две переменные lfWeight и lfItalic.

Использованиеэти две переменные, чтобы проверить, имеет ли перечисляемый шрифт стиль или нет.

, если lfWeight значение равно 0 (FW_DONTCARE) и lfItalic ложно, вы можете считать, что у него нет стиля.

Или, если вы хотите быть очень конкретным, например, вы хотите рассматривать шрифты только с полужирным шрифтом и обычным шрифтом, вы можете проверить, если lfWeight имеет значение от {400 (REGULAR), 600 (BOLD), 700 (BOLD), 800 (BOLD)}

Ниже ссылка содержит все детали.

https://msdn.microsoft.com/en-us/library/windows/desktop/dd145037(v=vs.85).aspx

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