2009-04-22 39 views
4

如何测试字体是否安装?测试字体是否安装(Win32)

最后,我想实现一个HTML状字体选择,即指定例如当“Verdana,Arial”,它应该选择安装的第一个字体。

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

这是最有效的方法吗?

回答

5

您可以使用EnumFontFamiliesEx枚举系统上的字体列表中,或者如果你传递一个字体的名字,你可以枚举的字体为家庭。

+0

你知道EnumFonts等人的DC参数有什么意义吗?它在CreateFont中不是必需的。通过桌面窗口的DC似乎工作,但我无法找到MSDN中的任何文档(除了“设备上下文的句柄”) – peterchen 2009-04-23 07:57:39

6

您可以尝试创建字体,看看你会得到什么(因此使用操作系统的字体名称匹配/替换)。

或者你可以枚举已安装的字体并自己做匹配。

的“最有效”的方式将取决于“匹配”的细节,并在所有的可能性,很多字体的安装方式。在一个带有50种字体的系统上,你可能会发现性能与装有1000种字体的系统有很大的不同。

最后,你只能在有代表性的系统配置文件,如果第一种方法(保持简单)原来是一个性能瓶颈。