richedit 2.0 引入了新的一個特性 IMF_AUTOFONT。設(shè)置了這個屬性后當(dāng)鍵盤布局改變后richedit 會自動的設(shè)置適合當(dāng)前布局的字體和字符集。所以在richedit中調(diào)用
SendMessage( EM_SETCHARFORMAT, SCF_ALL, (LPARAM)&crf);
或會發(fā)現(xiàn)對中文字符設(shè)置的字體生效的,但是英文字符未生效。
可以去掉這個屬性:
// 去掉 richedit2.0 默認設(shè)置了的 autofont
BOOL CNetRichEditCtrl::DisableAutoFont()
{
DWORD dwLanOptions = SendMessage(EM_GETLANGOPTIONS,0,0);
if (dwLanOptions&IMF_AUTOFONT)
{
dwLanOptions = dwLanOptions&~IMF_AUTOFONT;
SendMessage(EM_SETLANGOPTIONS,0,dwLanOptions);
return TRUE;
}
return FALSE;
}