分享

改变多个Edit控件的背景色

 昵称9114595 2012-03-31
本文一两个Edit控件为例
第一步:
在主窗口函数开始处定义变量 CBrush m_brush;和一个全局变量int  ColorNUM[2];
第二步:
为窗口类添加OnCtrlColor()函数;添加方法是右键窗口类添,选择Add windows Message Handler......,添加里面的WM_CTLCOLOR;
并对OnCtrlColor()函数进行一下修改:
 HBRUSH CR58u5555555Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor,int *a) 
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
a=ColorNUM;

if(nCtlColor==CTLCOLOR_EDIT)
{switch(pWnd->GetDlgCtrlID())
{
case IDC_EDIT1:
           pDC->SetTextColor(RGB(0,0,255));
   if(a[0]==1)
       pDC->SetBkColor(RGB(0,255,0));
   else
       pDC->SetBkColor(RGB(255,0,0));
   //pDC->SetBkMode(TRANSPARENT);
       hbr=(HBRUSH)m_brush;
           return hbr;
   break;
    case IDC_EDIT2:
       pDC->SetTextColor(RGB(0,0,255));
   if(a[1]==1)
       pDC->SetBkColor(RGB(0,255,0));
   else
       pDC->SetBkColor(RGB(255,0,0));
   //pDC->SetBkMode(TRANSPARENT);
       hbr=(HBRUSH)m_brush;
       return hbr;
       break;
   default:
   break;
}}
return hbr;
注意int *a是自己加的,而且还要在窗口头文件中函数声明里自己添加int *a这个参数。
想要改变背景色,只需给ColorNUM[2]对应项赋需要的值即可。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多