Здравствуйте, Mikka77, Вы писали:
M>Здравствуйте, mhe, Вы писали:
mhe>>Привожу фрагмент кода:
mhe>>HBRUSH CDiaLbtnDown::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
mhe>>{
mhe>>if ( nCtlColor == CTLCOLOR_EDIT )
mhe>> {
pDC->>>SetBkColor( RGB( 255, 255, 0 ) );
mhe>> return ( m_hbrYellowBrush );
mhe>> }
mhe>>if ( nCtlColor == CTLCOLOR_DLG )
mhe>> {
pDC->>>SetBkColor( RGB( 255, 0, 0 ) );
mhe>> return ( m_hbrRedBrush );
mhe>> }
mhe>>return ( CDialog::OnCtlColor( pDC, pWnd, nCtlColor ) );
mhe>>}
mhe>>Цвет background EDIT изменяется, а цвет DLG не изменяется. Как изменить цвет background самого диалогового окна??? Ответьте, пожалуйста в чём проблема???
M>Не надо забывать про вызов функции базового класса, ведь визард не просто так коментарии генерит
M>Типа можно так:
M>M>HBRUSH CDiaLbtnDown::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
M>{
M> HBRUSH hbr = CDialog::OnCtlColor( pDC, pWnd, nCtlColor);
M>if ( nCtlColor == CTLCOLOR_EDIT )
M>{
pDC->>>SetBkColor( RGB( 255, 255, 0 ) );
M> return ( m_hbrYellowBrush );
M>}
M>if ( nCtlColor == CTLCOLOR_DLG )
M>{
pDC->>>SetBkColor( RGB( 255, 0, 0 ) );
M> return ( m_hbrRedBrush );
M>}
M> return hbr;
M>}
M>
M>
Спасибо за помощь. И прошу извинить за не совсем толковый вопрос. Дело в том, что я не совсем правильно инициализировал m_hbrRed/YellowBrush