richedit2.0 设置英文字符字体

richedit2.0 设置英文字符字体

richedit 2.0 引入了新的一个特性 IMF_AUTOFONT。设置了这个属性后当键盘布局改变后richedit 会自动的设置适合当前布局的字体和字符集。所以在richedit中调用

SendMessage( EM_SETCHARFORMAT, SCF_ALL, (LPARAM) & crf);

或会发现对中文字符设置的字体生效的,但是英文字符未生效。

可以去掉这个属性:

//  去掉 richedit2.0 默认设置了的 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;
}


你可能感兴趣的:(richedit2.0 设置英文字符字体)