繁体   English   中英

如何使用非托管C ++获取Windows上已安装字体的列表?

[英]How can I get a list of installed fonts on Windows, using unmanaged C++?

我进行了一些探索,到目前为止,我已经找到了EnumFontFamiliesEx(...)。 但是,似乎此函数用于返回给定字体(例如“ Arial”)的所有字符集。

我不太清楚如何开始获得已安装字体的列表。 任何帮助/建议,将不胜感激。

先感谢您。

您可以这样做:

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;
}

您可能想在这里看看,因为那里的代码说明了如何使用EnumFontFamiliesEx获取所有字体名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM