1414       Конференция C SoobCha           письмо # 1415 1416  


Тема: Раскраска контролов и формы
Дата: Thu, 18 Oct 2007 09:24:08 +0300
Кому: "C" <C@soobcha.org>
X-Mailer: The Bat! (v3.60.07) Professional
Content-Type: text/plain; charset=koi8-r
От Кого: Лагоша В. Г. <Lagosha@amk.lg.ua>

     Привет Коллеги !!!
Вопрос нежданно появился :

Вопрос элементарный, но почему то глючит !

Есть проект Диалог-Базет. просто форма. На ней кнопки, едитбокс в кач-ве списка, статик-элементы.
Захотел поиграться с раскрашиванием. Вроде есть прогресс:

// раскраска по усмотрению m_Brush_user[1] - розовая кисть, m_Brush_user[0]-черная кисть

HBRUSH CHCopyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
       switch (nCtlColor)
                  {
                    // едит-бокс - как список
                    case CTLCOLOR_EDIT:
                           pDC->SetTextColor(RGB(0, 255, 0));
                           pDC->SetBkColor(RGB(0, 0, 0));
                           return (HBRUSH)(m_Brush_user[0]->GetSafeHandle());
                          break;
                    case CTLCOLOR_BTN: /* для кнопок */
                           pDC->SetTextColor(RGB(5, 55, 55));
                           pDC->SetBkColor(RGB(255, 190, 190));
                           return (HBRUSH)(m_Brush_user[0]->GetSafeHandle());
                           break;
                    case CTLCOLOR_DLG: /* для окна диалога (??) */
                           pDC->SetTextColor(RGB(0, 255, 0));
                           pDC->SetBkColor(RGB(255, 190, 190));
                           return (HBRUSH)(m_Brush_user[1]->GetSafeHandle());
                           break;
                    case CTLCOLOR_STATIC:
                          pDC->SetBkMode(TRANSPARENT); /* для статиков, чекбоксов, радиобатонов */
                          pDC->SetTextColor(RGB(0, 50, 140));
                          pDC->SetBkColor(RGB(255, 190, 190));
                          return (HBRUSH)(m_Brush_user[1]->GetSafeHandle());
                          break;

                    default:
                          return (HBRUSH)CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
          }

        return (HBRUSH)CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
}

Для контролов СТАТИК (чекбокс, радиобатон иже с ним) все окей ! Красится как просят!
Для контролов - прекрасно красится.
Для КНОПОК не хочет !!!!!

Все же вроде правильно ! ? Уже пробовал в case CTLCOLOR_BTN вставить проверку конкретной
кнопки по ее ID - тоже не пашет.

В чем бока ??

В MSDN-е ничего интересного про кнопки не увидел....



--

С уважением, Вадим
SafeGuard Lagosha<Анти-МЯУ>amk.lg.ua




  1414 1416  
 
???Mail.ru ??? ?????
╘ 2000-2006 Сообщество Чайников