Визуальное программирование и MFC




Класс диалоговой панели


Класс главной диалоговой панели объявляется в файле dlgDlg.h и реализуется в файле dlgDlg.cpp.

Объявление класса

Класс CDlgDlg наследуется от базового класса CDialog, определенного в библиотеке классов MFC. Конструктор класса имеет один необязательный параметр pParent, используемый для передачи индекса главного окна приложения. Роль главного окна выполняет сама диалоговая панель, поэтому параметр pParent не используется.

Непосредственно после объявления конструктора класса следует объявление элементов данных класса, которые добавлены средствами MFC AppWizard. Не рекомендуется вручную изменять код приложения, расположенный между комментариями AFX_DATA, между которыми заключены эти объявления.

Далее AppWisard добавляет объявления переопределенных виртуальных методов базового класса. Сначала объявлен только метод DoDataExchange, переопределенный для данной диалоговой панели. Этот метод применяется для связывания органов управления диалоговой панели с элементами управляющего ею класса.

Практически со всеми приложениями связана пиктограмма, которая будет отображаться при минимизации приложения. Обычно эта пиктограмма определяется на этапе регистрации класса главного окна приложения. Приложение dlg не имеет настоящего главного окна - вместо него используется диалоговая панель. Поэтому отображение пиктограммы не происходит автоматически, и, следовательно, необходимо управлять ее отображением (идентификатор пиктограммы m_hIcon определен в классе CDlgDlg).

Диалоговая панель CDlgDlg будет обрабатывать ряд сообщений. Объявления обработчиков сообщений, созданных при помощи AppWizard, располагаются между комментариями AFX_MSG. После создания проекта в нем объявлены обработчики 4-х сообщений: OnInitDialog, OnSysCommand, OnPaint и OnQueryDragIcon.

Конструктор класса

Конструктор класса CDlgDlg вызывает конструктор базового класса CDialog. При этом ему передаются идентификатор диалоговой панели и идентификатор главного окна приложения.

В теле конструктора расположен блок AFX_DATA_INIT.


Содержание  Назад  Вперед