1、设置RichEdit客户区的背景颜色

要设置RichEdit的背景色,需要发送 EM_SETBKGNDCOLOR 消息给RichEdit控件,关于该消息的说明:wParam参数 为颜色选项,如果是0,说明使用 lParam参数 中的颜色值作为背景色;如果该参数不为0,则使用系统背景色。因为我们要发送该消息来改变背景色,所以我们必须将wParam设置为0,将lParam设置为指定的颜色,即

  1. ::SendMessage( m_richEditCtrl.GetSafeHandle(), 0, (LPARAM)RGB(0,128,192) );

2、设置RichEdit指定区域的文字颜色及字体

将使用到CHARFORMAT结构体中的yHeight、szFaceName、crTextColor等字段,相关代码如下所示:

  1. void CRichEditCtrlEx::SetTextFontColor( const LOGFONT& font,COLORREF color )
  2. {
  3. CHARFORMAT cf;
  4. memset( &cf, 0, sizeof(CHARFORMAT) );
  5. GetDefaultCharFormat(cf);
  6. // 设置相关字体属性
  7. if(font.lfWeight == FW_BOLD)
  8. {
  9. cf.dwEffects |= CFE_BOLD;
  10. }
  11. else
  12. {
  13. cf.dwEffects &= ~(CFE_BOLD);
  14. }
  15. if(font.lfItalic)
  16. {
  17. cf.dwEffects |= CFE_ITALIC;
  18. }
  19. else
  20. {
  21. cf.dwEffects &= ~(CFE_ITALIC);
  22. }
  23. if(font.lfUnderline)
  24. {
  25. cf.dwEffects |= CFE_UNDERLINE;
  26. }
  27. else
  28. {
  29. cf.dwEffects &= ~(CFE_UNDERLINE);
  30. }
  31. if(font.lfStrikeOut)
  32. {
  33. cf.dwEffects |= CFE_STRIKEOUT;
  34. }
  35. else
  36. {
  37. cf.dwEffects &= ~(CFE_STRIKEOUT);
  38. }
  39. cf.yHeight = 20*font.lfHeight;
  40. cf.bPitchAndFamily = font.lfPitchAndFamily;
  41. strcpy(cf.szFaceName,font.lfFaceName);
  42. cf.dwEffects ^= CFE_AUTOCOLOR;
  43. cf.crTextColor = color;
  44. // 为将要输入的内容设定字体
  45. SetWordCharFormat(cf);
  46. }

3、改变RichEdit指定区域的文字背景颜色

这需要使用到CHARFORMAT2结构体,主要使用到结构体中的crBackColor字段。

  1. CHARFORMAT2 cf;
  2. memset( &cf, sizeof(CHARFORMAT2) );
  3. cf.cbSize = sizeof(CHARFORMAT2);
  4. cf.dwMask = CFM_BACKCOLOR;      // 使crBackColor字段有效
  5. cf.crBackColor = RGB(0, 255, 0);       // 背景颜色为绿色
  6. m_richEditCtrl.SetSel( lStart, lEnd ); // 选中区域文字
  7. m_richEditCtrl.SendMessage( EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf );

最新文章

  1. ArchLinux+Win10双系统的Grub配置
  2. 自己写一个 jQuery 插件
  3. HTML中head里的内容经浏览器解析后全到body里了
  4. Yii2.0 rules验证规则大全
  5. 【bzoj4027】[HEOI2015]兔子与樱花
  6. megapix-image插件 使用Canvas压缩图片上传 解决手机端图片上传功能的问题
  7. 4.0以后的新布局方式GridLayout
  8. 胡扯两句——CDQ分治
  9. Ext信息提示对话框
  10. PlSql复制角色、权限和添加角色权限
  11. Html 小插件6 百度新闻插件
  12. 向maven中添加本地jar包
  13. .Net 反射学习
  14. 如何通过免费开源ERP Odoo建立你的团队, 销售过程和目标
  15. JS中将变量转为字符串
  16. 【Noip模拟 20161005】运货
  17. js 报delete object in strict mode
  18. 在别家网站上执行自己的js代码(谷歌浏览器)(谷歌扩展程序)
  19. Android 写一个Activity之间来回跳转的全局工具类(主要是想实现代码的复用)
  20. zooland 新开源的RPC项目,希望大家在开发的微服务的时候多一种选择,让微服务开发简单,并且容易上手。

热门文章

  1. Jquery AJAX POST与GET之间的区别
  2. Git基础教程
  3. Asp.net TextBox只能输入数字
  4. The operator == is undefined for the argument type(s) int, null
  5. Gimp教程:简约手机图标风格
  6. Spring IOC之容器概述
  7. Scala 的 Web 框架 Lift 开始 3.0 版本开发
  8. nginx启动,重启,关闭命令
  9. Fitnesse集成TestLink
  10. Linq无聊练习系列5--OrderBy ,Groupby练习