请问在vs2005中怎么改变对话框的背景颜色?
我建的工程是“单文档”工程,里边加了很多对话框,我想把主框架和对话框都改一下颜色,请问怎么实现?本人菜鸟,最好把步骤说明白,详细,调试过了我就给分...
我建的工程是“单文档”工程,里边加了很多对话框,我想把主框架和对话框都改一下颜色,请问怎么实现?本人菜鸟,最好把步骤说明白,详细,调试过了我就给分
展开
2个回答
展开全部
为所有对话框类添加WM_CTLCOLOR消息函数,然后在里面添加代码如下:
HBRUSH CPASSWOEDDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor==CTLCOLOR_EDIT)
{
//pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(160,189,239));
HBRUSH b=CreateSolidBrush(RGB(160,189,239));
return b;
}
else if(nCtlColor==CTLCOLOR_STATIC)
{
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(0,133,239));
HBRUSH b=CreateSolidBrush(RGB(0,133,239));
return b;
}
else if(nCtlColor==CTLCOLOR_DLG)
{
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(160,180,220));
HBRUSH b=CreateSolidBrush(RGB(0,133,239));
return b;
}
// TODO: Change any attributes of the DC here
// TODO: Return a different brush if the default is not desired
return hbr;
}
以上代码不仅可以改对话框背景,还可以该静态文本框、编辑框、按钮的颜色。只需在CreateSolidBrush(RGB(160,189,239));中将数值改一下就可以
如果要修改主框架颜色,就必须重画主框架,会很麻烦,而且代码很复杂。我有一个类似的例子,你要的话我给你发过去,你照着做就行
HBRUSH CPASSWOEDDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor==CTLCOLOR_EDIT)
{
//pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(160,189,239));
HBRUSH b=CreateSolidBrush(RGB(160,189,239));
return b;
}
else if(nCtlColor==CTLCOLOR_STATIC)
{
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(0,133,239));
HBRUSH b=CreateSolidBrush(RGB(0,133,239));
return b;
}
else if(nCtlColor==CTLCOLOR_DLG)
{
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(160,180,220));
HBRUSH b=CreateSolidBrush(RGB(0,133,239));
return b;
}
// TODO: Change any attributes of the DC here
// TODO: Return a different brush if the default is not desired
return hbr;
}
以上代码不仅可以改对话框背景,还可以该静态文本框、编辑框、按钮的颜色。只需在CreateSolidBrush(RGB(160,189,239));中将数值改一下就可以
如果要修改主框架颜色,就必须重画主框架,会很麻烦,而且代码很复杂。我有一个类似的例子,你要的话我给你发过去,你照着做就行
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询