使用richedit改变某些字符的大小和颜色的问题?
我在使用richedit2.0时,用如下的代码,出现情形是,第一行显示比较正常,那个"Pass"会变成蓝色.
但第二行却不会被改变颜色,究竟是哪里出了问题了?
void TestDlg::OnButton1()
{
AddText("micro sd test Pass");
AddText("micro sd test Pass");
}
void TestDlg::AddText(char buf[])
{
CString str;
str = buf;
str +="\r\n";
m_richedit.SetSel(-1, -1);
m_richedit.ReplaceSel(str);
CHARFORMAT cf;
ZeroMemory(&cf, sizeof(CHARFORMAT));
cf.cbSize = sizeof(CHARFORMAT);
cf.dwMask = CFM_BOLD | CFM_COLOR | CFM_FACE |
CFM_ITALIC | CFM_SIZE | CFM_UNDERLINE;
cf.dwEffects = 0;
cf.yHeight = 18*18;//文字高度
cf.crTextColor = RGB(0, 0, 255); //文字颜色
strcpy(cf.szFaceName ,_T("Arial"));//设置字体
int iCount = strlen(buf);
m_richedit.SetSel(iCount-6, iCount); //设置处理区域
m_richedit.SetSelectionCharFormat(cf);
//自动滚动至最后一行
m_richedit.SendMessage(WM_VSCROLL, SB_BOTTOM, 0);
}