zoukankan      html  css  js  c++  java
  • 设置RichEdit相关颜色说明

    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.     // 设置相关字体属性  
    8.     if(font.lfWeight == FW_BOLD)  
    9.     {  
    10.         cf.dwEffects |= CFE_BOLD;  
    11.     }  
    12.     else  
    13.     {  
    14.         cf.dwEffects &= ~(CFE_BOLD);  
    15.     }  
    16.     if(font.lfItalic)  
    17.     {  
    18.         cf.dwEffects |= CFE_ITALIC;  
    19.     }  
    20.     else  
    21.     {  
    22.         cf.dwEffects &= ~(CFE_ITALIC);  
    23.     }  
    24.     if(font.lfUnderline)  
    25.     {  
    26.         cf.dwEffects |= CFE_UNDERLINE;  
    27.     }  
    28.     else  
    29.     {  
    30.         cf.dwEffects &= ~(CFE_UNDERLINE);  
    31.     }  
    32.     if(font.lfStrikeOut)  
    33.     {  
    34.         cf.dwEffects |= CFE_STRIKEOUT;  
    35.     }  
    36.     else  
    37.     {  
    38.         cf.dwEffects &= ~(CFE_STRIKEOUT);  
    39.     }  
    40.   
    41.     cf.yHeight = 20*font.lfHeight;  
    42.     cf.bPitchAndFamily = font.lfPitchAndFamily;  
    43.     strcpy(cf.szFaceName,font.lfFaceName);  
    44.   
    45.     cf.dwEffects ^= CFE_AUTOCOLOR;  
    46.     cf.crTextColor = color;  
    47.    
    48.     // 为将要输入的内容设定字体  
    49.     SetWordCharFormat(cf);  
    50. }  

    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 ); 
  • 相关阅读:
    Android笔记(ImageView、BaseLine、进度条ProgressBar)
    Android笔记(dp、sp、px、多选按钮CheckBox、单选按钮RadioButton)
    Android笔记(简介)
    Android Studio安装后Fetching android sdk component information超时的解决方案
    解决The environment variable JAVA_HOME does not point to a valid JVM installation
    使用Genymotiont调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATIBLE解决办法
    Android Studio导入第三方jar包及.so动态库
    数据库知识记录
    CentOS7.5下yum安装MySQL8.0.11笔记
    MyBatis的mapper.xml中判断集合的size
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3161440.html
Copyright © 2011-2022 走看看