改变对话框颜色
BOOL CMyApp::InitInstance()
{
// Standard initialization SetDialogBkColor(); // Set dialog background color to gray
LoadStdProfileSettings(); // Load standard INI file options (including MRU) // ...
}
BOOL CMyApp::InitInstance()
{
// Standard initialization SetDialogBkColor(); // Set dialog background color to gray
LoadStdProfileSettings(); // Load standard INI file options (including MRU) // ...
}
2 For Dialog, use WM_ERASEBKGRND
m_Yellow=::create............;
m_Red...=::create............
就行了 ,函数自己去查
m_hRedBrush=HBRUSH(RGB(255,0,0));
m_hYellowBrush=HBRUSH(RGB(255,255,0));经调试发现HBRUSH CMycppDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
也被正确调用,但就是改变不了颜色,Why?另按照prog_st(st)说的,在
BOOL CMyApp::InitInstance()中执行
SetDialogBkColor();
可以改变对话框颜色,但我还想根据需要改变控件的颜色。
望各位高手继续指点,谢谢!
你应该这样声明m_hRedBrush和m_hYellowBrush:CBrush m_hRedBrush;
然后在OnInitDialog中这样写:m_hRedBrush = CreateSolidBrush(HBRUSH(RGB(255,0,0));
最后在OnCtlColor中这样写:if(nCtlColor == CTLCOLOR_DLG) return (HBRUSH)m_hRedBrush;至于控件的背景颜色,我发现在OnCtlColor中只能改掉CTLCOLOR_MSGBOX和CTLCOLOR_EDIT,而对其他的控件似乎无效,不知这是为什么。