获取字体列表(Win32)

时间:2010-04-23 21:47:07

标签: c++ winapi fonts

我想制作一个组合框,其中包含所有计算机安装的字体。我不确定这是怎么做的。我是否需要访问注册表才能获得此信息? 感谢

2 个答案:

答案 0 :(得分:9)

您应该使用Win32 API函数EnumFontFamiliesEx。您调用该函数,传递与EnumFontFamExProc类型匹配的回调函数。对于EnumFontFamiliesEx找到的每种字体,都会调用一次回调函数。

我建议使用unicode版本(EnumFontFamiliesExW),因为我看到ascii版本(EnumFontFamiliesExA)显示了东亚语言字体的一些非常奇怪的行为。

链接的文章有示例代码。

答案 1 :(得分:4)

winapi的做法是使用EnumFontFamiliesEx函数。您应该使用默认参数DEFAULT_CHARSET传递填充结构以列出所有已安装的字体。

请参阅MSDN以获取更多信息。