Класс CDocument обеспечивает базисные функциональные возможности для определяемых пользователем классов документа. Документ представляет модуль данных, которые пользователь обычно открывается с командой File Open и сохраняет с командой File Save.
CDocument поддерживает стандартные операции типа создания документа, загрузки, сохранения. Рамка управляет документами, использующими интерфейс, определенный CDocument.
Прикладная программа может поддерживать больше чем один тип документа, например, прикладная программа могла бы поддерживать электронных таблицы и текстовые документы. Каждый тип документа имеет связанный шаблон документа, шаблон документа определяет то, какие ресурсы (например, меню, пиктограмма, или таблица акселератора) используется для того типа документа. Каждый документ содержит указатель на связанный объект CDocTemplate.
Пользователи взаимодействуют с документом через объект(ы) CView, связанный с документом. Просмотр выполняет изображение документа в рамочном окне и интерпретирует ввод пользователя как операции на документе. Документ может иметь многократные просмотры, связанные с ним. Когда пользователь открывает окно на документе, рамка создает просмотр и присоединяет его к документу. Шаблон документа определяет какой просмотр, и рамочное окно используется, чтобы отобразить каждый тип документа.
Документы - часть стандартной маршрутизации команды рамки и следовательно получают команды от стандартных компонентов интерфейса пользователя (типа пункта меню File Save). Документ получает команды, посланные активным просмотром. Если документ не обрабатывает данную команду, это команда к передаеться к шаблону документа, который управляет им.
Когда данные документа изменяются, каждый из просмотров должен отразить те модификации. CDocument обеспечивает UpdateAllViews функцию для Вас, чтобы сообщить просмотрам относительно таких изменений, так что просмотры могут повторно красить себя по мере необходимости. Рамка также запрашивает пользователя сохранять изменяемый файл перед закрытием.
Чтобы выполнять документы в типичной прикладной программе, Вы должны делать следующее:
#include <afxwin.h>