Иллюстрированный самоучитель по Visual Studio.Net

Кофемашины профессиональные читать далее. | фасадные панели купить +в хабаровске | японский сайдинг | xiaomi mi 6 обзор Запрос запущен. Идет покупка ссылок н/д н/д 352 н/д android-dv.ru/smartfony/xiaomi | японский фасад |

Немодальный диалог - часть 3


Применяя уже известный вам подход, создайте класс cclrEdit с базовым классом CEdit. В процессе определения атрибутов нового класса укажите существующие файлы (PolyDlg.h и PolyDlg.cpp) в качестве места для размещения кодов нового класса. Если возникнут окна диалогов с просьбой подтвердить необходимость погружения кодов в уже существующие файлы, то ответьте утвердительно. Введите изменения в файл PolyDlg.h, так чтобы он приобрел следующий вид:

#pragma once

//===== Класс нестандартного окна редактирования

class CClrEdit : public CEdit

{

DECLARE_DYNAMIC (CClrEdit)

public:

CClrEdit () ;

virtual -CClrEdit () ;

void ChangeColor (COLORREF clr) ; // Изменяем цвета

protected:

DECLARE_MESSAGE_MAP ()

private :

COLORREF ra_clrText; // Цвет текста

COLORREF ra_clrBk; // Цвет фона

CBrush m_brBk; // Кисть для закраски фона

};

//====== Класс для управления немодальным диалогом

class CPolyDlg : public CDialog

{

friend class CClrEdit;

DECLARE_DYNAMIC (CPolyDlg)

public : enum ( IDD = IDD_POLYCOLOR } ;

//====== Удобный для нас конструктор

CPolyDlg (CTreeDoc* p) ;

virtual -CPolyDlg ( ) ;

//====== Отслеживание цвета

void UpdateColor () ;

protected: virtual void DoDataExchange (CDataExchange* pDX) ;

DECLARE_MESSAGE_MAP ( ) private :

CTreeDoc* m_pDoc; // Обратный указатель

CBitmapButton m_cTri; // Кнопки с изображениями

CBitmapButton m_cPent;

CBitmapButton m_cStar;

bool ra_bScroll; // Флаг использования ползунка };

};

Мы изменили конструктор класса CPolyDlg так, чтобы он имел один параметр — адрес документа, который мы используем в качестве обратного указателя. Это поможет нам управлять приложением, оставаясь в рамках методов диалогового класса. Теперь воспользуемся услугами Studio.Net для создания функции-обработчика сообщения =WM_CTLCOLOR в классе нестандартного окна редактирования.

  1. Поставьте фокус на элемент CClrEdit дерева классов в окне Class View, перейдите в окно Properties и нажмите кнопку Messages.

  2. Нажмите кнопку Categorized и, нажав на маркер (-) Common, закройте список обычных сообщений.



    Начало  Назад  Вперед