请问在vs2005中怎么改变对话框的背景颜色?

我建的工程是“单文档”工程,里边加了很多对话框,我想把主框架和对话框都改一下颜色,请问怎么实现?本人菜鸟,最好把步骤说明白,详细,调试过了我就给分... 我建的工程是“单文档”工程,里边加了很多对话框,我想把主框架和对话框都改一下颜色,请问怎么实现?本人菜鸟,最好把步骤说明白,详细,调试过了我就给分 展开
 我来答
保晏然2Q
2008-10-10 · TA获得超过1053个赞
知道小有建树答主
回答量:422
采纳率:0%
帮助的人:521万
展开全部
为所有对话框类添加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));中将数值改一下就可以

如果要修改主框架颜色,就必须重画主框架,会很麻烦,而且代码很复杂。我有一个类似的例子,你要的话我给你发过去,你照着做就行
百度网友32cdd9945
2008-10-10 · TA获得超过1374个赞
知道大有可为答主
回答量:2429
采纳率:100%
帮助的人:1928万
展开全部
处理一下 wm paint消息,
加上setBkcolor 函数调用,指定窗体背景颜色
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式