MFC 全面更改控件颜色(对话框)

时间:2015-06-03 19:30:49   收藏:0   阅读:1690

HBRUSH CXXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何属性
if(nCtlColor==CTLCOLOR_BTN) //更改按钮颜色
{
//pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(121,121,255));
HBRUSH b=CreateSolidBrush(RGB(121,121,255));
return b;
}
else if(nCtlColor==CTLCOLOR_SCROLLBAR) //
{
//pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(233,233,220));
HBRUSH b=CreateSolidBrush(RGB(233,233,220));
return b;
}
else if(nCtlColor==CTLCOLOR_EDIT) //更改编辑框
{
//pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(165,254,236));
HBRUSH b=CreateSolidBrush(RGB(165,254,236));
return b;
}
else if(nCtlColor==CTLCOLOR_STATIC) //更改静态文本
{
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(204, 204, 153));
HBRUSH b=CreateSolidBrush(RGB(204, 204, 153));
return b;
}
else if(nCtlColor==CTLCOLOR_DLG) //更改对话框背景色
{
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(204, 204, 153));
HBRUSH b=CreateSolidBrush(RGB(204, 204, 153));//
return b;
}
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
return hbr;
}

 

Dlg对话框添加消息,继承OnCtlColor函数:

HBRUSH CfunctionCallDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);

// TODO: 在此更改 DC 的任何特性

if (nCtlColor == CTLCOLOR_DLG || nCtlColor == CTLCOLOR_STATIC){//可以使静态文本框(edit,checkbox,groupbox)等与背景色相同

pDC->SetTextColor(RGB(0, 0, 0));
pDC->SetBkColor(RGB(204, 204, 153));
HBRUSH b = CreateSolidBrush(RGB(204, 204, 153));
return b;
}

//而以下只是更改字的背景色,还有一些空隙未被填充

//if (pWnd->GetDlgCtrlID() == IDC_STATICTestCaseName || pWnd->GetDlgCtrlID() == IDC_CHECK_DesignModel || pWnd->GetDlgCtrlID() == IDD_FUNCTIONCALL_DIALOG)
//{
// pDC->SetTextColor(RGB(0, 0, 0)); //字体颜色
// pDC->SetBkColor(RGB(204, 204, 153)); //字体背景色
//}

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!