VC2008对话框改颜色

来源:百度知道 编辑:UC知道 时间:2024/06/09 00:42:34
我按VC6的模式,在VC2008基于对话框的项目的APP类的InitInstance(void)函数中,在第一个对话框DoModal之前加入SetDialogBkColor(RGB(255,0,0),(0,0,255)),可是为什么对话框还是没有改变颜色呢?按理说应该变红色的啊。是不是MFC的后续版本中屏蔽了SetDialogBkColor函数?那要如何解决呢?请高手不吝赐教,谢谢!
请问tjw408797664,为什么用你的方法后,运行的时候提示有1个断点呢?不能连续执行,而且对话框上的按钮被刷子刷没了...

改变对话框颜色:
在C**Dlg类上点右键,增加WM_CTRLCOLOR消息,进入
HBRUSH C**Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)消息响应函数里,最后一句有个return hbr;
自己在类上定义一个成员变量如:
CBrush m_brush;然后初始化m_brush.CreateSolidBrush(RGB(0,255,255));
最后将return hbr;改为return m_brush就可以了。
以上哪个函数还有其他很多用处,可以改变控件颜色,字体大小等具体你可以看一下MSDN

This function is obsolete.

To set the background color of the dialog box, you must handle WM_CTLCOLOR. This message changes the color of the specified dialog box only.