http://tikitak.narod.ru ---- Главная страница сайта
Шаг 48 - Цвет диалогового окна
Создание проекта
Воспользуемся из предыдущего шага. Только изменения кода.
Создание кода
Новая функция и класс в диалоговом окне
class CTestDlg : public CDialog
{
..........
afx_msg HBRUSH OnCtlColor( CDC* pDC, CWnd* pWnd, UINT nCtlColor );
CBrush my_color;
...........
};
Добавления к таблице окликов
BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
.............
ON_WM_CTLCOLOR()
.............
END_MESSAGE_MAP()
Реализация
HBRUSH CTestDlg::OnCtlColor( CDC* pDC, CWnd* pWnd, UINT nCtlColor )
{
return my_color;
}
Изменение инициализации диалогового окна.
BOOL CTestDlg::OnInitDialog()
{
........
my_color.CreateSolidBrush(RGB(0, 255, 155));
.......
}
Описание
Итак мы обьявляем функцию OnCtlColor, которая возвращает кисть для покраски окна. Обьявили и класс кисти, которая будет использоваться для покраски окна.
Когда окну (в данном случае диалоговому) необходимо произвести закраску себя, то оно для получения стиля закраски обращается к OnCtlColor. Но для реализации данной возможности нам необходимо описать в таблице откликов реакцию на событие закраски окна. Эта реакция реализуется описанием события ON_WM_CTLCOLOR()
Дальше мы реализуем функцию возвращая класс кисти. А вот в функции инициализации диалогового окна мы и создаем цвет покраски.
Запускайте, Ваше окно должно стать зеленым.
Предыдущий Шаг | Следующий Шаг | Оглавление By Artem.
Используются технологии uCoz
|