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

改变对话框中的CEdit控件的背景色
下面的例子将改变指定的CEdit控件的背景色,每一个CEdit控件都可以使用不同的颜色。在例子中我使用了蓝色和红色的背景色和白色的文字颜色。
CTestDlg的头文件中,声明CBrushCOLOREF的成员变量:
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(redcolor);
// change the background color
pDC->SetTextColor(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
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值