动态改变窗体及编辑框背景色

本文介绍了一个简单的MFC对话框类中实现颜色切换的方法。通过添加一个静态BOOL变量IsDraw来控制对话框中特定控件的颜色变化。当按钮被点击时,IsDraw变量的状态将发生改变,并重新绘制对话框,使得ID_EDIT_TEXT对应的文本框背景和文字颜色发生变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 给对话框类添加一个BOOL型的静态变量.  
  public:  
  static   BOOL   IsDraw;  
  ==============  
  BOOL   CMFCDlg::IsDraw   =   FALSE;  
  ==============  
  void   CMFCDlg::OnBt()    
  {  
  if(!IsDraw)  
  IsDraw   =   TRUE;  
  else  
  IsDraw   =   FALSE;  
  CMFCDlg::Invalidate();  
   
  }  
   
  =========  
   
   
  HBRUSH   CMFCDlg::OnCtlColor(CDC*   pDC,   CWnd*   pWnd,   UINT   nCtlColor)    
  {  
  HBRUSH   hbr   =   CDialog::OnCtlColor(pDC,   pWnd,   nCtlColor);  
   
  if(IsDraw){  
  if(pWnd->GetDlgCtrlID()   ==   ID_EDIT_TEXT){  
  pDC->SetBkMode(TRANSPARENT);    
  pDC->SetTextColor(RGB(255,0,0));  
  pDC->SetBkColor(RGB(192,   255,   192));  
  HBRUSH   hBr   =   CreateSolidBrush(RGB(0,   0,   0));   //   文本框背景色  
  return   hBr;  
  }  
  }  
  //   TODO:   Return   a   different   brush   if   the   default   is   not   desired  
  return   hbr;  
  }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值