我有一个文本选择/规范对话框,用户可以在其中指定列表中的字体,设置粗体,斜体等。然后我使用LOGFONT
中的信息创建一个CFont
,随后在CEdit
中用作预览。
但是,如果用户选择像Wingdings这样的符号字体,除非我将LOGFONT::lfCharset
设置为SYMBOL_CHARSET
,否则预览无法正常工作。所以,基本上只给出一个字体名称,我如何确定默认字符集应该是什么(即,如何判断我是否应该使用SYMBOL_CHARSET
)?
我已经看到使用GetTextMetrics()
的建议,但这涉及将字体设置为DC,我还没有创建字体,所以...?
获得字体名称后,可以使用EnumFontFamiliesEx
查看特定字符集是否存在该字体。您可以使用DEFAULT_CHARSET
调用一次,如果不起作用,请使用SYMBOL_CHARSET
再次调用它。
无论如何,这是一个猜测。我没有机会亲自尝试一下。