m_richEdit.SetBackgroundColor(FALSE,RGB(255,0,0));
解决方案 »
- CInternetSession::OpenURL() 对文件类型有限制吗?
- 关于 vc程序和java程序socket通讯
- 100分急问!在基于CFormView的多文档界面中打开文件时遇到的问题.
- 怎么插入真彩色图片资料?
- Edit框如何可以输入多行文字??
- 用CLASSWIZD在DLL中加了一个CDIALOG子类MYDIALOG,为什么看不见??
- 关于判断一句句子结束的问题
- 谁能推荐一个关于Word ActiveX开发的源码
- 谁知道类似PhotoShop里面的那种渐变色编辑条?
- 关于VC++60的控件的资料什么地方找,谢谢各位
- 有关vc++中用teechart绘制实时曲线
- 散分兼分享新版iocpframeowork
可能您误解了我的意思,我是想对m_richEdit字符串中指定的部分进行设置背景颜色 以区分于其他的颜色。
所以使用了:
m_richEdit.SetSel(1,9);
m_richEdit.SetSelectionCharFormat(cf);
ZeroMemory(&cf, sizeof(CHARFORMAT2));
cf.cbSize = sizeof(CHARFORMAT2);cf.dwMask = CFM_COLOR|CFM_BACKCOLOR|CFM_BOLD|CFM_FACE;
cf.dwEffects &= ~CFE_AUTOCOLOR;
cf.dwEffects &= ~CFE_AUTOBACKCOLOR;
strcpy(cf.szFaceName,_T("黑体"));//设置字体
cf.crBackColor=RGB(255,0 , 0); //背景颜色为红色
cf.crTextColor=RGB(0, 0, 0); //文字白色
UpdateData(TRUE);
m_richcstring="十一快乐还是不快乐";//是m_richEdit的CString 类型的值
UpdateData(FALSE);
m_richEdit.SetSel(1,9);
m_richEdit.SetSelectionCharFormat(cf);
非常感谢您的回答~!
直接用您的代码
结果是 只能显示背景 看不见文字~
我稍作修改以后,如下所示:
cf.dwMask = CFM_BACKCOLOR;
//cf.dwEffects &= ~CFE_AUTOCOLOR;
//cf.dwEffects &= ~CFE_AUTOBACKCOLOR;
//cf.dwMask = CFM_COLOR;
strcpy(cf.szFaceName,_T("黑体"));//设置字体
cf.crBackColor=RGB(0,0,255); //背景颜色为红色
cf.crTextColor = RGB(0, 0, 0); //文字白色
背景颜色改变了 文字也可以显示出来但是 文字的颜色没有改变?
不知道是怎么回事,请您务必指教一下 非常感谢!
我从早晨一直搞到现在 就差这一步了 如果既能够显示背景颜色 也能够显示文字的颜色 那就可以了!!
我在线期待您的回复!谢谢您~!祝您万事如意!
全家幸福!
阿弥陀佛!
CHARFORMAT2 cf;
ZeroMemory(&cf, sizeof(CHARFORMAT2));
cf.cbSize = sizeof(CHARFORMAT2);
cf.dwMask = CFM_COLOR|CFM_BACKCOLOR|CFM_BOLD|CFM_FACE;
cf.dwEffects &= ~CFE_AUTOCOLOR;
cf.dwEffects &= ~CFE_AUTOBACKCOLOR;
strcpy(cf.szFaceName,_T("黑体"));//设置字体
cf.crBackColor=RGB(255,0 , 0); //背景颜色为红色
cf.crTextColor=RGB(0, 0, 0); //文字白色
UpdateData(TRUE);
m_richcstring="十一快乐还是不快乐";//是m_richEdit的CString 类型的值
UpdateData(FALSE);
m_richEdit.SetSel(1,9);
m_richEdit.SetSelectionCharFormat(cf);
//设置另外一段关键字
m_richEdit.SetSel(10,12);
cf.crBackColor=RGB(0,0 , 255); //背景颜色为蓝色
cf.crTextColor=RGB(0, 0, 0); //文字白色
m_richEdit.SetSelectionCharFormat(cf);
//结果是只有第一部分有用其他的都不好用。不同同时设置吗?不可能吧?!
CHARFORMAT2 cf;
ZeroMemory(&cf, sizeof(CHARFORMAT2));
cf.cbSize = sizeof(CHARFORMAT2);
//cf.dwMask = CFM_COLOR|CFM_BACKCOLOR|CFM_BOLD|CFM_FACE;
cf.dwMask = CFM_BACKCOLOR|CFM_COLOR;;
//cf.dwEffects &= ~CFE_AUTOCOLOR;
//cf.dwEffects &= ~CFE_AUTOBACKCOLOR;
//cf.dwMask = CFM_COLOR;
strcpy(cf.szFaceName,_T("黑体"));//设置字体
cf.crBackColor=RGB(0,255,0); //背景颜色为绿色
cf.crTextColor = RGB(0, 0, 0); //文字为黑色
但是 在设置另外的关键字部分时 不生效
这有第一次设置的有效第二次不生效 不知道为啥。。
CHARFORMAT2 cf;
LPCTSTR lpszStr = TEXT("中国CSDN论坛\nhttp://bbs.csdn.net/\n");void CRichDlg::OnBnClickedButton1()
{
memset(&cf, 0, sizeof(cf) );
cf.cbSize = sizeof(cf);
cf.dwMask = CFM_COLOR|CFM_BOLD|CFM_SIZE|CFM_BACKCOLOR;
cf.dwEffects &= ~CFE_AUTOCOLOR;
cf.dwEffects &= ~CFE_AUTOBACKCOLOR;
cf.dwEffects |= CFE_BOLD;
cf.crBackColor = RGB(50, 50,120);
cf.crTextColor = RGB(255,255,255) ;
cf.yHeight = 512; m_rich.SetSelectionCharFormat(cf);
m_rich.ReplaceSel(lpszStr);
cf.crBackColor = RGB(50, 50,255);
cf.crTextColor = RGB(255,0,0);
m_rich.SetSel(0,2);
m_rich.SetSelectionCharFormat(cf); cf.crBackColor = RGB(50, 50,50);
cf.crTextColor = RGB(0,120,0) ;
m_rich.SetSel(2,6);
m_rich.SetSelectionCharFormat(cf); cf.crBackColor = RGB(230, 50,50);
cf.crTextColor = RGB(0,20,200) ;
m_rich.SetSel(6,8);
m_rich.SetSelectionCharFormat(cf); cf.crBackColor = RGB(80, 100,50);
cf.crTextColor = RGB(0,255,0) ;
m_rich.SetSel(20,24);
m_rich.SetSelectionCharFormat(cf);
}