专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »C 教程 » 对话框背景色:对话框背景色以及控件颜色设置方法代码 »正文

对话框背景色:对话框背景色以及控件颜色设置方法代码

来源: 发布时间:星期四, 2008年9月25日 浏览:28次 评论:0

要设置对话框背景颜色,必须重载OnCtlColor函数,其对应的Windows消息为WM_CTLCOLOR. 在OnCtlColor函数中返回一个自己定义的画刷。

可以根据不同的控件类型返回不同的画刷,来实现不同控件颜色的设置。具体有:

CTLCOLOR_MSGBOX
CTLCOLOR_EDIT
CTLCOLOR_LISTBOX
CTLCOLOR_BTN
CTLCOLOR_DLG
CTLCOLOR_SCROLLBAR
CTLCOLOR_STATIC
CTLCOLOR_MAX

下面是简单的例子:

HBRUSH CDatabaseTestDlg::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(166,254,1));
HBRUSH b=CreateSolidBrush(RGB(166,254,1));
return b;
}
else if(nCtlColor==CTLCOLOR_DLG) //更改对话框背景色
{
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(166,254,1));
HBRUSH b=CreateSolidBrush(RGB(166,254,1));
return b;
}

// TODO: 如果默认的不是所需画笔,则返回另一个画笔
return hbr;
}

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: