如何确定使用哪个LOGFONT字符集?

问题描述 投票:2回答:1

我有一个文本选择/规范对话框,用户可以在其中指定列表中的字体,设置粗体,斜体等。然后我使用LOGFONT中的信息创建一个CFont,随后在CEdit中用作预览。

但是,如果用户选择像Wingdings这样的符号字体,除非我将LOGFONT::lfCharset设置为SYMBOL_CHARSET,否则预览无法正常工作。所以,基本上只给出一个字体名称,我如何确定默认字符集应该是什么(即,如何判断我是否应该使用SYMBOL_CHARSET)?

我已经看到使用GetTextMetrics()的建议,但这涉及将字体设置为DC,我还没有创建字体,所以...?

winapi fonts character-encoding mfc
1个回答
3
投票

获得字体名称后,可以使用EnumFontFamiliesEx查看特定字符集是否存在该字体。您可以使用DEFAULT_CHARSET调用一次,如果不起作用,请使用SYMBOL_CHARSET再次调用它。

无论如何,这是一个猜测。我没有机会亲自尝试一下。

© www.soinside.com 2019 - 2024. All rights reserved.