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 );

设置RichEdit相关颜色说明的更多相关文章

  1. 设置placeholder字体颜色

    /*设置placeholder字体颜色*/::-webkit-input-placeholder{ color: #FFF;}:-ms-input-placeholder{ color: #FFF;} ...

  2. Android中设置TextView的颜色setTextColor

    tv.setTextColor(Color.parseColor("#FFFFFF")); tv.setTextColor(Color.WHITE); tv.setTextColo ...

  3. C# 的Brush 及相关颜色的操作 (并不是全转)

    C# 的Brush 及相关颜色的操作 2013-12-13 14:08             4977人阅读             评论(0)             收藏             ...

  4. JavaGUI——设置框架背景颜色和按钮颜色

    import java.awt.Color; import javax.swing.*; public class MyDraw { public static void main(String[] ...

  5. UITabBar 设置字体的颜色(选中状态/正常状态)setTitleTextAttributes

    UITabbar有个setTintColor这个方法,可以理解为,高亮的时候,或者点击后的颜色设置. UITabBarItem有个setTitleTextAttributes的方法,是用来设置字体的颜 ...

  6. vc设置按钮文字颜色

    设置按钮文字颜色使用 CMFCBUTTON即可 在OnInitDialog函数加入如下内容即可 ((CMFCButton*)GetDlgItem(IDC_MFCBUTTON1))->SetTex ...

  7. 【转】Android中设置TextView的颜色setTextColor--代码中设置字体颜色

    原文网址:http://www.cnblogs.com/myphoebe/archive/2012/01/06/2314728.html android中设置TextView的颜色有方法setText ...

  8. Qt中设置widget背景颜色/图片的注意事项(使用样式表 setStyleSheet())

    在Qt中设置widget背景颜色或者图片方法很多种:重写paintEvent() , 调色板QPalette , 样式表setStyleSheet等等. 但是各种方法都有其注意事项,如果不注意则很容易 ...

  9. div 背景色设置_DIV背景颜色设置

    DIV 背景色设置篇-div背景颜色设置篇 一.div标签内直接设置背景颜色   -   TOP <div style="background:#000; color:#FFF&quo ...

随机推荐

  1. 一些javascript常用方法

    1.输入一个正整数n,从1累加到n,返回结果.(如果输入为非正整数,如:小数.0.负数.NaN或其它非数字则返回false) function f(n){ return ~~+n == n & ...

  2. 《C语言及程序设计初步》网络课程主页

    题记 CSDN要开在线教育频道,向我发出邀请,看能否开些课程. 我近日一直在关注着翻转课堂,试图在传统课堂中引入新的元素,这须要资源建设的积累.没有时间表的工作,非常难把握. 为CSDN做在线课程,为 ...

  3. CodeSmith

    完美解决CodeSmith无法获取MySQL表及列Description说明注释的方案   问题描述: CodeSmith是现在比较实用的代码生成器,但是我们发现一个问题: 使用CodeSmith编写 ...

  4. 纯Lambda实现斐波那契数列

    还需要考虑溢出等问题,主要无事写着玩 Func<float, float, float> a = (arg1, arg2) => 0f;//init ; a = (lastNumbe ...

  5. 添加MySql Metat Database 信息

    有时候我们想看看 一个数据库上面 某种元素(比如表名)的所有信息,在Mysql上 我们可以通过引入information_schema 的方式,就可以非常方便的查看到. 添加步骤 Edit->P ...

  6. ReviewBoard安装和配置说明

    眼下部门还没有採用Pair Programming那种时时刻刻都在review代码的工作方式,代码Review多採用走查方式.即代码写完后召开一个Code Review的Meeting,集中时间和经验 ...

  7. Linux Shell 示例精解(第七章 gawk编程)转载

    第七章 gawk功能:gawk编程 7.1.1 数字和字符串常量     初始化和类型强制  在awk中,变量不需要定义就可以直接使用,使用一个变量就是对变量的定义.变量的类型可以试数字.字符串,或者 ...

  8. ASP.NET Identity登录原理 - Claims-based认证和OWIN

    MVC5 - ASP.NET Identity登录原理 - Claims-based认证和OWIN 在Membership系列的最后一篇引入了ASP.NET Identity,看到大家对它还是挺感兴趣 ...

  9. 解决Timer回调方法重复调用的问题

    如果Timer的回调方法的执行时间很长,计时器可能在上个回调方法还没有完成的时候再次触发,如果我们只是想让一个回调方法执行完后再执行下一个回调方法,可以这样: private static Timer ...

  10. [原]关于在 iOS 中支持 DLNA

    目前国内的视频播放器中,支持 DLNA 播放比较好的是:腾讯视频. 刚才反编了一下他们的代码,发现使用了一个开源库, 地址:https://github.com/FuruyamaTakeshi/DLN ...