我写了个SDI程序,视图地基类是CRichEditView,并且定义了视图类的一个成员CHARFORMAT cfm;在OnInitialUpdate()中有:
cfm.cbSize=sizeof(cfm);
cfm.bCharSet=GB2312_CHARSET;
cfm.crTextColor=RGB(0,0,0);
cfm.dwMask=CFM_CHARSET | CFM_COLOR ;
GetRichEditCtrl().SetDefaultCharFormat(cfm);
有一个消息映射函数Msg(LPCTSTR sz,COLORREF clr),每当调用该函数,执行下面的动作:
cfm.cbSize=sizeof(cfm);
cfm.crTextColor=clr;
cfm.dwMask=CFM_COLOR;
int len = GetWindowTextLength();
         GetRichEditCtrl().SetSel(len,len);
         GetRichEditCtrl().SetSelectionCharFormat(cfm);
GetRichEditCtrl().ReplaceSel(strTemp);
我做过变量观察,发现党调用该函数时,传入的clr的值是正确设定的颜色值,但是视图中显示的是字符还是黑色。急需知道答案!!!