我是想通过richeidt动态的设定每一行的文字颜色
但是不知道为什么,设置的结果与我的预想不一样
我的代码是:
void CRichEditDlg::OnShow() 
{    // TODO: Add your control notification handler code here
      m_strRichEdit += "5678\r\n";
      UpdateData(TRUE);      
      
      CHARFORMAT cf;
          ZeroMemory(&cf, sizeof(CHARFORMAT));
      m_richEdit.GetSelectionCharFormat(cf);
          cf.cbSize = sizeof(CHARFORMAT);
          cf.dwMask = CFM_BOLD | CFM_COLOR | CFM_FACE |
                  CFM_ITALIC | CFM_SIZE | CFM_UNDERLINE;
          cf.dwEffects = 0;
          cf.yHeight = 12*12;//文字高度
          cf.crTextColor = RGB(200, 100, 255); //文字颜色
          strcpy(cf.szFaceName ,_T("隶书"));//设置字体
       
      //m_richEdit.SetDefaultCharFormat(cf);  
           m_richEdit.SetSel(current, current+6-1); //设置处理区域
      current += 6;
        
           m_richEdit.SetSelectionCharFormat(cf);    m_richEdit.PostMessage(WM_VSCROLL, SB_BOTTOM, 0);
}可运行的结果是
我第一设定的文字颜色会印象后面n-1次颜色,只有最后第n次的颜色是我最新的
其他前n-1次设定的颜色都被第一次设定的颜色所覆盖,不知道怎么回事比如;
1234 [红色]       1234[红色]        1234[红色]       1234[红色]
             =>   2345[绿色]  =>    2345[红色]  =>   2345[红色]
                                    3456[黄色]       3456[红色]
                                                     4567[蓝色]