我需要一个包含粗体、斜体和粗体斜体样式的客户端计算机(总是Windows)中所有已安装字体的列表。有这样的功能吗?
我已经能够用EnumFontFamiliesEx
列出所有已安装的字体,我认为这可以过滤列表,但我正在寻找一种“更好的方法”:)
谢谢!
PS: --我使用的是C++和MFC。
编辑:
对于没有这些样式的字体,Windows可以“伪造”这种行为(强制字体看起来粗体或斜体),但我需要知道哪些字体真正具有这些样式。
发布于 2018-05-23 17:52:42
在使用"EnumFontFamiliesEx“时,回调函数接收结构LOGFONT.
LOGFONT
有两个变量lfWeight
和lfItalic
。
使用这两个变量检查枚举字体是否具有样式。
如果lfWeight
值为0 (FW_DONTCARE
),而lfItalic
为false,则可以认为这没有任何样式。
或者,如果您想非常具体,例如,您想考虑字体只有粗体和规则,那么您可以验证,如果lfWeight
的值从{400 (规则),600 (粗体),700 (粗体),800 (粗体)}
下面的链接包含了所有细节。
https://msdn.microsoft.com/en-us/library/windows/desktop/dd145037(v=vs.85).aspx
https://stackoverflow.com/questions/50490325
复制相似问题