Шаг 18.
Среда программирования Visual C++.
Структура MFC-приложения

    На этом шаге мы рассмотрим структуру MFC-приложения.

    Познакомившись с архитектурой Windows-приложения, можно переходить к изучению приложений на базе MFC.

    Классы библиотеки MFC не только инкапсулируют Win32 API. Среди них есть небольшая группа классов, представляющих стандартные объекты приложения и устанавливающих в этой группе взаимосвязи с целью реализации обычной работы Windows-программы. Такие определяющие архитектуру приложения классы вместе с некоторыми глобальными функциями составляют каркас приложения, который можно использовать в качестве основы любой программы. Для создания набора производных от них классов обычно применяют мастер MFC AppWizard. Добавляя к ним свой код, Вы напишете нужную Вам программу.

    Каркас MFC-приложения реализует базовую архитектуру Windows-приложения с помощью:

Класс приложения

    Приложение представлено в MFC классом CWinApp, производным от класса потока CWinThread. CWinApp - это класс первичного потока. Он инкапсулирует функции инициализации, работы и завершения приложения, описанные в таблице 1.

Таблица 1. Функции-члены класса CWinApp
Функция Описание
InitInstance() Инициализирует каждый экземпляр запускаемого приложения. Отображает его главное окно
Run() Реализует цикл обработки сообщений
OnIdle() Вызывается каркасом, когда в очереди нет сообщений для обработки. Можно переопределить эту функцию для выполнения фоновых задач
ExitInstance() Вызывается при завершении экземпляра приложения

    В каждом MFC-приложении должен присутствовать производный от CWinApp класс. Также необходимо переопределить функцию InitInstance(). Она вызывается непосредственно функцией WinMain() и проводит специфическую инициализацию приложения.

    В начало

Функция WinMain()

    В каркасе приложения существует стандартная функция WinMain(). Вызывая некоторые глобальные функции, она производит стандартную инициализацию приложения, например регистрирует оконный класс. Затем она запускает функцию-член объекта приложения InitInstance(). После чего начинает работать функция-член Run(), создающая цикл обработки сообщений, который завершается с приходом сообщения WM_QUIT. В момент его получения вызывается функция ExitInstance(). После нее выполняются операции по очистке памяти и завершению приложения.

    В начало

Главное окно

    Основной компонент Windows-приложения - главное окно, которое необходимо для взаимодействия с программой. Им может быть и простое диалоговое окно, и окно-рамка (его размер можно изменять), содержащее меню, панели инструментов и клиентскую область. В любом случае в каркасе приложения должен присутствовать класс, производный от CDialog или CFrameWnd, который приложение будет использовать для создания объекта главного окна. При запуске программы главное окно отображает функция InitInstance().

    В начало

    А теперь вернемся к проекту МуАрр, созданному на шаге 2. На его примере Вы изучите классы полученного каркаса приложения.

    На следующем шаге мы рассмотрим механизм обработки ссобщений.




Предыдущий шаг Содержание Следующий шаг