Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3 семестр, WinAPI, MFC.pdf
Скачиваний:
370
Добавлен:
15.06.2014
Размер:
6.17 Mб
Скачать

Классы, определяющие архитектуру приложения

Классы этой категории поддерживают обшие функциональные возможности большинства приложений. После создания каркаса приложения с использованием средства AppWizard ваша задача — наполнить его функциональными возможностями, специфичными для решения конкретной задачи. Обычно для этого создаются новые классы из классов архитектуры путем добавления новых и/или переопределением существующих функций-членов.

AppWizard генерирует несколько типов приложений, все из которых используют каркас в различных вариантах. Приложения, реализованные на базе SDI (однодокументного интерфейса) и MDI (многодокументного интерфейса), позволяют в полной мере использовать часть каркаса, называемую архитектурой документ/представление (document/view architecture).

Другие типы приложений, такие как приложения на базе диалогового окна, формы или DLL. используют только некоторые особенности этой архитектуры.

Архитектура документ/представление включает один или несколько документов, их представлений и соответствующих фреймов окон. Объект шаблона документа ассоциируется с классами длякаждого множества документ/представление/фрейм окна.

Все приложения на базе MFC имеют, по крайней мере, два объекта: объект "приложение", производный от класса CWinApp, и некоторый объект "главное окно", производный (часто не напрямую) от класса CWnd. (Наиболее часто главное окно порождается от классов CFrameWnd, CM DI Frame Wndalog или С Dialog, каждый из которых произведенотCWnd).

Приложения, которые используют архитектуру документ/представление содержат дополнительные объекты:

3 объект-приложение, производный от класса CWinApp, как упоминалось выше;

fj один или больше объектов-документов, произведенных от класса CDocument. Эти объекты служат для внутреннего представления данных, обрабатываемых в представлении. Они могут быть ассоциированы с файлом данных;

Q один или больше объектов-представлений, произведенных от класса CView. Каждое представление является окном, которое присоединено к документу и ассоциировано с фреймом окна. Представление изображает и манипулирует данными, содержащимися в объекте-документе.

Кроме того, такие приложения содержат фреймы окон (произведенных от CFrameWnd) и шаблонов документов (произведенных от СDoc Template).

Классы приложения и поддержки потоков

Каждое приложение имеет один и только один объект-приложение, который координирует работу других объектов при запуске программы.

Библиотека MFC поддерживает множество потоков, выполняемых внутри приложения. Но все приложения обязаны иметь, по крайней мере, один поток, называемый главным, который использует объект класса CWinApp.

Класс CWinThread инкапсулирует часть возможностей операционной системы для работы с потоками. Кроме того, MFC содержит классы объектов синхронизации, предоставляя интерфейс

C++ объектам синхронизации

Win32.

Классы приложения и потоков

CWinApp

инкапсулируеткодинициализации, запускаизавершенияприло-

 

жения

CWinThread базовый класс для всех потоков; его можно использовать непосредственно, или произвестиотнегосвойкласс, еслинеобходимовыполнениекаких-либосвоихфункций