我有一个文本选择/规范对话框,用户可以从列表中指定字体,设置粗体,斜体等。然后,我使用LOGFONT
中的信息来创建CFont
以便随后在CEdit
中用作预览。
但是,如果用户选择Wingdings之类的符号字体,则除非我将LOGFONT::lfCharset
设置为SYMBOL_CHARSET
,否则预览将无法正常工作。因此,从本质上讲,仅给定字体名称,我如何确定默认字符集应该是什么(即,如何确定我是否应该SYMBOL_CHARSET
)?
我已经看到使用GetTextMetrics()
的建议,但这涉及将字体设置为DC,并且我还没有创建字体,所以...?
答案 0 :(得分:3)
一旦有了字体名称,就可以使用EnumFontFamiliesEx
查看特定字符集是否存在该字体。您可以使用DEFAULT_CHARSET
对其进行一次调用,如果不起作用,请使用SYMBOL_CHARSET
对其进行调用。
那还是一个猜测。我还没有机会自己尝试一下。