Документы, представления и платформа
В основе платформы MFC лежит концепция документа и представления. Документ — это объект данных, с которым пользователь взаимодействует в сеансе редактирования. Она создается командой New или Open в меню "Файл " и обычно сохраняется в файле. (Стандартные документы MFC, производные от класса CDocument
, отличаются от активных документов и составных документов OLE.) Представление — это объект окна, с помощью которого пользователь взаимодействует с документом.
Основные объекты в работающем приложении:
Объекты потоков
Если приложение создает отдельные потоки выполнения( например, для выполнения вычислений в фоновом режиме), вы будете использовать классы, производные от
CWinThread
.CWinApp
сам по себе является производным отCWinThread
основного потока выполнения (или основного процесса) в приложении. MFC также можно использовать в дополнительных потоках.Объект приложения
Класс приложения (производный от
CWinApp
) управляет всеми объектами выше и указывает поведение приложения, например инициализацию и очистку. Один и только объект приложения создает шаблоны документов для всех типов документов, поддерживаемых приложением.Шаблон документа или шаблоны
Шаблон документа оркеструет создание документов, представлений и окон кадров. Определенный класс шаблона документа, производный от класса
CDocTemplate
, создает и управляет всеми открытыми документами одного типа. Приложения, поддерживающие несколько типов документов, имеют несколько шаблонов документов. Используйте класс CSingleDocTemplate для приложений SDI или используйте классCMultiDocTemplate
для приложений MDI.Окна фрейма
Представления отображаются в окнах фрейма документа. В приложении SDI окно кадра документа также является основным окном кадров для приложения. В приложении MDI окна документов являются дочерними окнами, отображаемыми в главном окне фрейма. Производный класс главного окна фрейма указывает стили и другие характеристики окон фрейма, содержащих ваши представления. Если вам нужно настроить окна кадров, наследуйте его,
CFrameWnd
чтобы настроить окно фреймов документов для приложений SDI. Производный отCMDIFrameWnd
настройки главного окна кадров для приложений MDI. Кроме того, наследуйте класс отCMDIChildWnd
того, чтобы настроить каждый отдельный вид окон фреймов документов MDI, поддерживаемых приложением.Документ или документы.
Класс документов (производный от
CDocument
) задает данные приложения.Если требуется функциональность OLE в приложении, наследуйте класс документов или
COleDocument
один из производных классов в зависимости от типа необходимых функций.Представление или представления.
Класс представления (производный от
CView
) — это окно пользователя в данных. Класс представления определяет, как пользователь видит данные документа и взаимодействует с ним. В некоторых случаях документ может иметь несколько представлений данных.Если вам нужна прокрутка, наследуемая от
CScrollView
. Если в представлении есть пользовательский интерфейс, который размещается в ресурсе шаблона диалогового окна, наследуется отCFormView
. Для простых текстовых данных используйте или наследуйте их.CEditView
Для приложения доступа к данным на основе форм, например программы ввода данных, наследуется отCRecordView
(для ODBC). Также доступны классыCTreeView
,CListView
иCRichEditView
.
В работающем приложении эти объекты совместно реагируют на действия пользователя, связанные с командами и другими сообщениями. Один объект приложения управляет одним или несколькими шаблонами документов. Каждый шаблон документа создает и управляет одним или несколькими документами (в зависимости от того, является ли приложение SDI или MDI). Пользователь просматривает документ и управляет документом через представление, содержащееся в окне кадра. На следующем рисунке показаны связи между этими объектами для приложения SDI.
Объекты в работающем приложении SDI
В остальной части этой семьи статей объясняется, как инструменты платформы, мастер приложений MFC и редакторы ресурсов, создавать эти объекты, как они работают вместе и как они используются в программировании. Документы, представления и окна кадров подробно рассматриваются в разделе "Объекты окна" и "Архитектура документа и представления".