改变对话框中的CEdit控件的背景色

下面的例子将改变指定的CEdit控件的背景色,每一个CEdit控件都可以使用不同的颜色。在例子中我使用了蓝色和红色的背景色和白色的文字颜色。
在CTestDlg的头文件中,声明CBrush和COLOREF的成员变量:
class CTestDlg : public CDialog
{
protected:
CBrush m_redbrush,m_bluebrush;
COLORREF m_redcolor,m_bluecolor,m_textcolor;
};
//然后加下面的几行在OnInitDialog中:
BOOL CTestDlg::OnInitDialog() 
{
m_redcolor=RGB(255,0,0); // red
m_bluecolor=RGB(0,0,255); // blue
m_textcolor=RGB(255,255,255); // white text
m_redbrush.CreateSolidBrush(m_redcolor); // red background
m_bluebrush.CreateSolidBrush(m_bluecolor); // blue background

//最后在OnCtlColor中加入:
HBRUSH CTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
HBRUSH hbr; 
switch (nCtlColor) 

case CTLCOLOR_EDIT: 
case CTLCOLOR_MSGBOX: 
switch (pWnd->GetDlgCtrlID()) 

case IDC_MYCONTROLNAME1: // first CEdit control ID
// put your own CONTROL ID here 
pDC->SetBkColor(bluecolor); // change the background color
pDC->SetTextColor(textcolor); // change the text color
hbr = (HBRUSH) m_bluebrush; // apply the brush
break; 
case IDC_MYCONTROLNAME2: // second CEdit control ID
// put your own CONTROL ID here 
pDC->SetBkColor(m_redcolor); // change the background color
pDC->SetTextColor(m_textcolor); // change the text color
hbr = (HBRUSH) m_redbrush; // apply the brush
break; 
// otherwise do default handling of OnCtlColor
default: 
hbr=CDialog::OnCtlColor(pDC,pWnd,nCtlColor); 
break; 

break; 
// otherwise do default handling of OnCtlColor
default: 
hbr=CDialog::OnCtlColor(pDC,pWnd,nCtlColor); 
}
return hbr; // return brush

}


转自:http://fengzhizhusuo.diandian.com/post/2011-10-09/16025153

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值