有效果啊BOOL CTestApp::InitInstance() { AfxEnableControlContainer(); #ifdef _AFXDLL Enable3dControls(); // Call this when using MFC in a shared DLL #else Enable3dControlsStatic(); // Call this when linking to MFC statically #endif SetDialogBkColor(RGB(0,0,255),RGB(0,255,0)); CTestDlg dlg; m_pMainWnd = &dlg; int nResponse = dlg.DoModal();
{
AfxEnableControlContainer();
#ifdef _AFXDLL
Enable3dControls(); // Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif
SetDialogBkColor(RGB(0,0,255),RGB(0,255,0)); CTestDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor == CTLCOLOR_DLG) {
HBRUSH h = CreateSolidBrush(RGB(240,230,211));
return h;
}
return hbr;
}
可以在每个对话框里重载OnCtlColor函数改变颜色
一般可以用重载对话框OnCtlColor消息的方法实现,如下HBRUSH CXXXX::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
if(nCtlColor == CTLCOLOR_DLG) {
HBRUSH h = CreateSolidBrush(RGB(255,0,0)); //对话框背景为红色
return h;
}
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
return hbr; //这2句要放最后,否则会导致资源泄露!
}