设置RichEdit相关颜色说明
来源:互联网 发布:慕情捏脸数据 编辑:程序博客网 时间:2024/05/16 10:55
1、设置RichEdit客户区的背景颜色
要设置RichEdit的背景色,需要发送 EM_SETBKGNDCOLOR 消息给RichEdit控件,关于该消息的说明:wParam参数 为颜色选项,如果是0,说明使用 lParam参数 中的颜色值作为背景色;如果该参数不为0,则使用系统背景色。因为我们要发送该消息来改变背景色,所以我们必须将wParam设置为0,将lParam设置为指定的颜色,即
- ::SendMessage( m_richEditCtrl.GetSafeHandle(), 0, (LPARAM)RGB(0,128,192) );
2、设置RichEdit指定区域的文字颜色及字体
将使用到CHARFORMAT结构体中的yHeight、szFaceName、crTextColor等字段,相关代码如下所示:
- void CRichEditCtrlEx::SetTextFontColor( const LOGFONT& font,COLORREF color )
- {
- CHARFORMAT cf;
- memset( &cf, 0, sizeof(CHARFORMAT) );
- GetDefaultCharFormat(cf);
- // 设置相关字体属性
- if(font.lfWeight == FW_BOLD)
- {
- cf.dwEffects |= CFE_BOLD;
- }
- else
- {
- cf.dwEffects &= ~(CFE_BOLD);
- }
- if(font.lfItalic)
- {
- cf.dwEffects |= CFE_ITALIC;
- }
- else
- {
- cf.dwEffects &= ~(CFE_ITALIC);
- }
- if(font.lfUnderline)
- {
- cf.dwEffects |= CFE_UNDERLINE;
- }
- else
- {
- cf.dwEffects &= ~(CFE_UNDERLINE);
- }
- if(font.lfStrikeOut)
- {
- cf.dwEffects |= CFE_STRIKEOUT;
- }
- else
- {
- cf.dwEffects &= ~(CFE_STRIKEOUT);
- }
- cf.yHeight = 20*font.lfHeight;
- cf.bPitchAndFamily = font.lfPitchAndFamily;
- strcpy(cf.szFaceName,font.lfFaceName);
- cf.dwEffects ^= CFE_AUTOCOLOR;
- cf.crTextColor = color;
- // 为将要输入的内容设定字体
- SetWordCharFormat(cf);
- }
3、改变RichEdit指定区域的文字背景颜色
这需要使用到CHARFORMAT2结构体,主要使用到结构体中的crBackColor字段。
- CHARFORMAT2 cf;
- memset( &cf, sizeof(CHARFORMAT2) );
- cf.cbSize = sizeof(CHARFORMAT2);
- cf.dwMask = CFM_BACKCOLOR; // 使crBackColor字段有效
- cf.crBackColor = RGB(0, 255, 0); // 背景颜色为绿色
- m_richEditCtrl.SetSel( lStart, lEnd ); // 选中区域文字
- m_richEditCtrl.SendMessage( EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf );
- 设置RichEdit相关颜色说明
- richedit 设置某一行颜色
- 如何设置richedit的默认背景色和文字颜色
- eclipse颜色设置相关
- log4net相关设置说明
- 设置文本框某几行文字颜色(RichEdit控件的使用)
- 用CFontDialog设置richEdit内容的字体和颜色 及其他
- RichEdit设置font字体大小
- 安卓透明颜色设置说明
- zend studio 9 字体,颜色相关设置
- iOS navgationBar 的颜色相关设置
- RichEdit控件设置行间距
- RichEdit根据字号设置文字大小
- pthread_mutexattr_t设置的相关函数及其说明
- Bugzilla附件设置相关参数说明
- build.gradle 的设置和相关说明
- RichEdit扩展控件– ekRichEdit API 说明
- RichEdit扩展控件– ekRichEdit API 说明
- c#打开新窗体后关闭旧窗体
- <重构>读书笔记之<内联化方法>
- How loader Maps DLL in to Process Address Space
- wsprintf
- 配置
- 设置RichEdit相关颜色说明
- 一个程序员的学习
- 字符串操作函数
- <重构>读书笔记之<内联化临时变量>
- window.location.href与window.ocation的区别
- grep详细用法(与正则的结合)
- [C#] 怎么删除ArrayList中的重复值
- AWK 详细用法讲解 (有举例说明)
- C/C++ 日常小积累