richedit 2.0 引入了新的一個(gè)特性 IMF_AUTOFONT。設(shè)置了這個(gè)屬性后當(dāng)鍵盤(pán)布局改變后richedit 會(huì)自動(dòng)的設(shè)置適合當(dāng)前布局的字體和字符集。所以在richedit中調(diào)用
SendMessage( EM_SETCHARFORMAT, SCF_ALL, (LPARAM)&crf);
或會(huì)發(fā)現(xiàn)對(duì)中文字符設(shè)置的字體生效的,但是英文字符未生效。
可以去掉這個(gè)屬性:
// 去掉 richedit2.0 默認(rèn)設(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;
}