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



Главный класс приложения


Главный класс приложения CDlgApp определен в файле dlg.h и реализован в файле dlg.cpp.

Для класса CDlgApp описан конструктор, не имеющий параметров. Этот конструктор используется в момент запуска приложения для создания объекта класса CDlgApp.

Кроме конструктора, в классе CDlgApp переопределяется метод InitInstance базового класса CWinApp. Каждый раз при запуске очередной копии приложения вызывается этот метод. Это единственный метод главного класса, который обязательно должен быть переопределен. Средство MFC AppWizard реализует переопределяемый метод InitInstance для различного типа пользовательского интерфейса (однооконный, многооконный, основанный на диалоге) по-разному.

В данном случае в этом методе создается диалоговая панель, которая и будет выполнять роль пользовательского интерфейса приложения. Для этого сначала создается объект dlg класса CDlgDlg, который управляет диалоговой панелью. Затем адрес этого объекта присваивается элементу данных m_pMainWnd главного класса приложения.

После этого вызывается метод DoModal для объекта dlg класса CDlgDlg. Он создает диалоговую панель и отображает ее на экране. Значение, выдаваемое методом DoModal, можно использовать для того, чтобы проанализировать результат работы пользователя с диалоговой панелью.

Главный объект приложения

В файле dlg.cpp объявляется глобальный объект главного класса приложения. Именно с создания этого объекта и начинается работа приложения.

Объект класса CWinApp (или класса, наследуемого от него) входит во все приложения, созданные с использованием MFC AppWizard, вне зависимости от пользовательского интерфейса этого приложения.

Таблица сообщений класса

Таблица сообщений класса CDlgApp, созданная средством AppWizard, состоит из макрокоманд BEGIN_MESSAGE_MAP и END_MESSAGE_MAP. Между ними располагаются макрокоманды, определяющие сообщения, обрабатываемые данным классом. Изначально в таблице определено только одно командное сообщение, имеющее идентификатор ID_HELP. Для его обработки вызывается метод OnHelp базового класса.

Необработанные сообщения передаются на обработку базовому классу CWinApp, так как он указан во втором параметре макрокоманды BEGIN_MESSAGE_MAP.




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