vc 大家看看我想给对话框添加背景该怎么做

来源:百度知道 编辑:UC知道 时间:2024/06/08 00:04:06
我想通过重载窗体的WM_CTLCOLOR消息来处理
HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

//TODO: Change any attributes of the DC here

pDC->SetBkMode(TRANSPARENT);
switch(nCtlColor)
{
case CTLCOLOR_DLG: //设置对话框的背景色
//这里加什么代码
case CTLCOLOR_BTN://设置窗体中的控件的背景色
//这里加什么代码

}

// TODO: Return a different brush if the default is not desired
return hbr;

}
我又改进 : pDC->SetTextColor(RGB(0, 0, 255)); //设置文本颜色
pDC->SetBkMode(TRANSPARENT);
switch(nCtlColor)
{
case CTLCOLOR_DLG:
{
static CBrush mBrush(RGB(255, 0, 0));
return (HBRUSH)mBrush ;
}

case CTLCOLOR_BTN://设置窗体中的控件的背景色
{
static CBrush mBrush(RGB(0,

case CTLCOLOR_STATIC: //static控件
{
pDC->SetBkMode(TRANSPARENT); //字体透明
pDC->SetTextColor(RGB(255,0,0)); //字体颜色
HBRUSH B =(HBRUSH)GetStockObject(NULL_BRUSH); //透明画刷
return B;
}

对于修改控件颜色等风格建议做个派生类,再子类化到对话框会灵活些