1.添加WM_ERASEBKGND的消息处理函数
2.添加代码
//头文件添加变量
CBrush m_brush;
//在构造中设置颜色
CMyDialogDlg::CMyDialogDlg(CWnd* pParent /*=nullptr*/)
: CDialogEx(IDD_MYDIALOG_DIALOG, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_brush.CreateSolidBrush(RGB(255, 255, 255));//设置背景颜色(白色)
}
//WM_ERASEBKGND消息响中添加
BOOL CMyDialogDlg::OnEraseBkgnd(CDC* pDC)
{
CRect rect;
GetClientRect(&rect);
pDC->FillRect(&rect, &m_brush);
return TRUE;
}
3.结果
4.如果添加一个Icon,那么对话框中的ICON的颜色和背景色将不一样
5.添加WM_CTLCOLOR的消息处理函数
6.添加代码
HBRUSH CMyDialogDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
return m_brush;
}
7.结果