获取字体列表(Win32)

jma*_*erx 6 c++ winapi fonts

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

Joe*_*oeG 10

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

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

链接的文章有示例代码.


Cos*_*ert 5

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

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