Re: Как изменить цвет control в диалоговом окне
От: Mikka77  
Дата: 29.03.05 17:21
Оценка:
Здравствуйте, 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 самого диалогового окна??? Ответьте, пожалуйста в чём проблема???


Не надо забывать про вызов функции базового класса, ведь визард не просто так коментарии генерит
Типа можно так:

HBRUSH CDiaLbtnDown::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
   HBRUSH hbr = CDialog::OnCtlColor( pDC, pWnd, nCtlColor);
if ( nCtlColor == CTLCOLOR_EDIT )
{
    pDC->>SetBkColor( RGB( 255, 255, 0 ) );
    return ( m_hbrYellowBrush );
}
 
if ( nCtlColor == CTLCOLOR_DLG )
{
    pDC->>SetBkColor( RGB( 255, 0, 0 ) );
    return ( m_hbrRedBrush );
}
   return hbr;
}

"Количество времени, необходимое для решения задачи, не зависит от того, было это время использовано для решение данной задачи или нет." ©Mikka77
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.