MFC中基于对话框的程序:
1、在对话框中加入一个RichEdit的控件,并且添加一个控件变量CRichEditCtrl  m_eidtWrite。
2、在对话框中加入一个Combobox的控件,并且添加一个控件变量CComboBox  m_ComboBoxFont。
3、调用EnumFontFamilies枚举出系统的字体放在
   Combobox中。
4、建立一个全局变量CHARFORMAT (m_cfWrite);并将它初始化。
5、为Combobox添加个OnCloseupCombofont消息响应,用来选择字体,并把字体信息加入
   到m_cfWrite中。代码如下:///用于枚举系统字体信息,并把他们显示到combobox中[color]
CClientDC dc(this);
::EnumFontFamilies( (HDC)dc, NULL, (FONTENUMPROC)EnumFontFamProc, (LPARAM) this );int CALLBACK CIMMsgDlg::EnumFontFamProc(ENUMLOGFONT *lpelf, NEWTEXTMETRIC *lpntm,
int nFontType, LPARAM lParam)
{
CIMMsgDlg* pWnd = (CIMMsgDlg*)lParam;
pWnd->m_ComboBoxFont.AddString(lpelf->elfLogFont.lfFaceName);
return 1;
}[color=#FF0000]//消息响应函数

void CIMMsgDlg::OnCloseupCombofont() 
{
CString sTmp;
m_ComboBoxFont.GetLBText(m_ComboBoxFont.GetCurSel(),sTmp);
strcpy(m_cfWrite.szFaceName ,_T(sTmp));//设置字体
m_eidtWrite.SetCharFormat(m_cfWrite);
m_eidtWrite.SetDefaultCharFormat(m_cfWrite);
}
//初始化CHARFOMAT
        CHARFORMAT m_cfWrite;
        ZeroMemory(&m_cfWrite, sizeof(CHARFORMAT));
m_cfWrite.cbSize = sizeof(CHARFORMAT);
m_cfWrite.dwMask =  CFM_FACE|CFM_SIZE | CFM_COLOR |CFM_ITALIC |CFM_UNDERLINE  ;
m_cfWrite.dwEffects = 0;
m_cfWrite.yHeight = 12*12*2;//文字高度
m_cfWrite.crTextColor = RGB(0, 0, 0); //文字颜色
strcpy(m_cfWrite.szFaceName ,_T("宋体"));//设置字体*/问题是:
      我想把richedit中的字体统一,里面只出现一种字体,上面的代码可是实现,对于输入的字体
      我选择combobox中信息来改变,可以做到,可是当我再接着输入的时候就会出现问题,它不在是我
      选择的那种字体。
例如:
    当我在richedit输入几个字,然后在combobox选择“华文行楷”,可以改变当前的字体,当我在次输入时
    它就不是华文行楷了(这种现象是对英文字母的,对中文没有此种现象)。上面的现象谁能帮我解决一下,使英文字母跟中文同步呢?
非常感谢