Проверьте, установлен ли шрифт (Win32) - PullRequest
4 голосов
/ 22 апреля 2009

Как я могу проверить, установлен ли шрифт?

В конечном счете, я хочу реализовать HTML-подобный выбор шрифта, то есть при указании, например, «Verdana, Arial», он должен выбрать первый установленный шрифт.

Этот вопрос дает ответ для .NET - кажется, рекомендуемый способ - создать шрифт, а затем сопоставить фактически использованный шрифт

Это самый эффективный способ?

Ответы [ 2 ]

6 голосов
/ 22 апреля 2009

Вы можете попытаться создать шрифт и посмотреть, что вы получите (таким образом, используя сопоставление / замену имени шрифта ОС).

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

«Наиболее эффективный» способ будет зависеть от деталей «совпадения» и, по всей вероятности, от того, сколько шрифтов установлено. В системе, скажем, с 50 шрифтами вы, вероятно, обнаружите, что производительность значительно отличается от системы с установленными 1000 шрифтами.

В конце концов, вы можете профилировать только репрезентативные системы, если ваш первый подход (оставьте его простым) оказывается узким местом производительности.

5 голосов
/ 22 апреля 2009

Вы можете использовать EnumFontFamiliesEx для перечисления списка шрифтов в системе или, если вы передадите имя шрифта, вы можете перечислить шрифты для этого семейства.

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