我已经探索了一下,到目前为止我已经找到了EnumFontFamiliesEx(...)。但是,看起来这个函数用于返回给定字体的所有字符集(例如“Arial”)。
我无法弄清楚如何获取已安装字体的列表。任何帮助/建议将不胜感激。
提前谢谢。
答案 0 :(得分:3)
你可以这样做:
LOGFONT lf;
lf.lfFaceName[0] = '\0';
lf.lfCharSet = DEFAULT_CHARSET;
HDC hDC = ::GetDC();
EnumFontFamiliesEx(hDC, &lf, (FONTENUMPROC)&EnumFontFamExProc, 0, 0);
ReleaseDC(hDC);
然后定义一个回调函数:
int CALLBACK EnumFontFamExProc(
ENUMLOGFONTEX *lpelfe,
NEWTEXTMETRICEX *lpntme,
DWORD FontType,
LPARAM lParam
)
{
AfxMessageBox(lpelfe->elfFullName);
//Return non--zero to continue enumeration
return 1;
}
答案 1 :(得分:2)
您可能需要查看here,因为其中的代码解释了如何使用EnumFontFamiliesEx
获取所有字体名称。