如何获得系统的,能够显示中文的,默认字体?

alphapaopao 2004-08-18 09:18:08
要保证能够显示中文,不能 是英文字体
...全文
336 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
alphapaopao 2004-08-18
  • 打赏
  • 举报
回复
+ ((ncm).lfCaptionFont).lfFaceName 0x0012fe60 "Microsoft Sans Serif"
+ ((ncm).lfSmCaptionFont).lfFaceName 0x0012fea4 "Microsoft Sans Serif"
+ ((ncm).lfMenuFont).lfFaceName 0x0012fee8 "Microsoft Sans Serif"
+ ((ncm).lfStatusFont).lfFaceName 0x0012ff24 "Microsoft Sans Serif"
+ ((ncm).lfMessageFont).lfFaceName 0x0012ff60 "Microsoft Sans Serif"


应用程序仍然能够显示中文
alphapaopao 2004-08-18
  • 打赏
  • 举报
回复
好像有问题.
我在系统外观里面设置 sans serif 字体,仍然能够显示中文,这说明系统在遇到英文字体的时候,作出了特殊处理。而 sans serif 的确是英文字体。

DC 中设置英文字体进去,仍然能够显示中文。这是怎么回事?
roger_ding 2004-08-18
  • 打赏
  • 举报
回复
NONCLIENTMETRICS ncm;
memset(&ncm, 0, sizeof(ncm));
ncm.cbSize = sizeof(ncm);
::SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, (PVOID) &ncm, 0);

里面的font是当前系统正在使用的字体
roger_ding 2004-08-18
  • 打赏
  • 举报
回复
EnumFontFamiliesEx 和 EnumFontFamExProc
或者GetFontUnicodeRanges

我没做过这方面的,你可以自己查查MSDN,我想应该可以识别的
alphapaopao 2004-08-18
  • 打赏
  • 举报
回复
roger_ding(海天一色):
看来系统知道一个字体能够显示中文呢。应用程序如何得到这个字体呢?
roger_ding 2004-08-18
  • 打赏
  • 举报
回复
这是操作系统做的处理,如果当前字体里没有需要显示的字符,系统会到默认的字体里去寻找,例如宋体,所以即使选的字体不包含中文,仍然能显示中文

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧