Re[2]: Как изменить цвет control в диалоговом окне
От: mhe  
Дата: 30.03.05 10:14
Оценка:
Здравствуйте, 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
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.