为什么没有能够设置对话框的背景色

来源:百度知道 编辑:UC知道 时间:2024/06/08 00:28:44
HBRUSH CEx07aDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if (nCtlColor == CTLCOLOR_EDIT) {
pDC->SetBkColor(RGB(255, 255, 0)); // yellow
return 0;
}
if (nCtlColor == CTLCOLOR_DLG) {
//pDC->SetBkColor(RGB(255, 0, 0)); // red
return 0;
}

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

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

这里写得很清楚:
// TODO: 如果默认的不是所需画笔,则返回另一个画笔

所以该函数的目的不是绘图
pDC->SetBkColor(XXX);
而是返回一个背景画刷:
if()
{
return CreateSolidBrush(RGB(XXX));
或者
return CreatePatternBrush(HBITMAP);
}