测试是否安装了字体(Win32)

时间:2009-04-22 09:27:20

标签: c++ winapi fonts

如何测试是否安装了字体?

最终,我希望实现类似HTML的字体选择,即在指定例如“Verdana,Arial”,它应该选择安装的第一个字体。

This Question提供了.NET的答案 - 似乎推荐的方法是创建字体,然后cmpare实际使用的字体。

这是最有效的方法吗?

2 个答案:

答案 0 :(得分:6)

您可以尝试创建字体并查看所获得的内容(因此使用操作系统的字体名称匹配/替换)。

或者您可以枚举已安装的字体并自行匹配。

“最有效”的方式取决于“匹配”的细节,并且很可能,安装了多少字体。在具有50种字体的系统上,您可能会发现性能与安装了1000种字体的系统有很大不同。

最后,您只能在代表性系统上进行分析,如果您第一次接近(保持简单)则会成为性能瓶颈。

答案 1 :(得分:5)

您可以使用EnumFontFamiliesEx枚举系统中的字体列表,或者如果您传递字体名称,则可以枚举该系列的字体。