CEdit 背景色设置

1)   在其父窗口中来处理CEdit 
响应其父窗口的WM_CTRLCOLOR消息,然后通过其响应函数 
OnCtlColor()来实现改变CEdit背景色的目的: 
代码如下: 
HBRUSH   CMulEditView::OnCtlColor(CDC*   pDC,   CWnd*   pWnd,   UINT   nCtlColor)   

      HBRUSH   hbr   =   CView::OnCtlColor(pDC,   pWnd,   nCtlColor); 
      CBrush   m_brush; 
      m_brush.CreateSolidBrush(RGB(0,255,0)); 
      
      if   (pWnd-> GetDlgCtrlID()   ==   1)     //   ”1“   是编辑框的ID号 
      { 
            pDC-> SetTextColor(StoreFontColor); 
            pDC-> SetBkMode(TRANSPARENT); 
            hbr   =   m_brush; 
      } 
      return   hbr;     //   注意被返回的颜色是控件的背景色 

用这种方法是有一个缺陷的,因为编辑框的背景色最好由他自己来处理,这样 
就不会出现代码分散的现象。 
2)由该编辑控件自己来处理, 
通过类向导来为该编辑控件添加WM_CTLCOLOR消息,在其响应函数中加以下代码: 
HBRUSH   CEditEx::CtlColor(CDC*   pDC,   UINT   nCtlColor)   

LOGBRUSH   m_LogBrush; 
m_BackBrush.GetLogBrush(&m_LogBrush);                                               //   得到背景颜色的逻辑刷 
pDC-> SetBkColor(m_LogBrush.lbColor);                                                 //   设置背景颜色 
return   HBRUSH(m_BackBrush);                                                                   //   返回背景颜色 

即可。 
但是要注意 
1: "m_BackBrush "必须是一个公有或是私有的数据成员,不能为局部变量。 
2:不要为起父窗口,或者该编辑框自身响应OnEraseBkgnd()函数。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值