我在Window注册表中为我的字体设置了连接SimSun的字体 当我将该字体应用于我的richedit控件时,它具有以下行为:
这是截图:
字体是:
在这种情况下,如何强制窗口选择SimSun而不是Microsft Ya Hei?
修改
感谢@Cody Gray的完美答案。这是工作代码:
CHARFORMAT2 cf2;
memset(&cf2, 0, sizeof(CHARFORMAT2));
cf2.cbSize = sizeof(CHARFORMAT2);
cf2.dwMask = CFM_FACE | CFM_SIZE | CFM_CHARSET | CFM_LCID;
cf2.lcid = 0x0804;
cf2.yHeight = 280;
cf2.bCharSet = CHINESEBIG5_CHARSET;
wcscpy(cf2.szFaceName, L"SimSun");
SendMessage(rtbhWnd, EM_SETCHARFORMAT, SCF_SELECTION | SCF_ASSOCIATEFONT, (LPARAM)&cf2);
cf2.cbSize = sizeof(CHARFORMAT2);
cf2.dwMask = CFM_FACE | CFM_SIZE | CFM_CHARSET | CFM_LCID;
cf2.lcid = 0x0409;
cf2.yHeight = 220;
cf2.bCharSet = ANSI_CHARSET;
wcscpy(cf2.szFaceName, L"Segoe UI");
SendMessage(rtbhWnd, EM_SETCHARFORMAT, SCF_SELECTION | SCF_ASSOCIATEFONT2, (LPARAM)&cf2);
答案 0 :(得分:2)
您可以通过向RichEdit控件发送带有SCF_ASSOCIATEFONT
标记的EM_SETCHARFORMAT
message来设置字符表示的默认字体。
这包括填写具有所需字体特征的CHARFORMAT2
structure以及与所需字符表示的区域设置相对应的LCID,如文档中所述。
另请参阅:How to Use Font Binding in Rich Edit Controls
Windows {8},Windows 8引入了" Microsoft YaHei" font作为简体中文脚本的默认UI字体。我认为(但我不确定)SimSun曾经是这个脚本的默认字体,所以如果你在某些系统而不是其他系统上看到这种行为,那就可以解释它。