Шаг 1074 - CDocument

1074_1.gif (879 b)

Класс CDocument обеспечивает базисные функциональные возможности для определяемых пользователем классов документа. Документ представляет модуль данных, которые пользователь обычно открывается с командой File Open и сохраняет с командой File Save.

CDocument поддерживает стандартные операции типа создания документа, загрузки, сохранения. Рамка управляет документами, использующими интерфейс, определенный CDocument.

Прикладная программа может поддерживать больше чем один тип документа, например, прикладная программа могла бы поддерживать электронных таблицы и текстовые документы. Каждый тип документа имеет связанный шаблон документа, шаблон документа определяет то, какие ресурсы (например, меню, пиктограмма, или таблица акселератора) используется для того типа документа. Каждый документ содержит указатель на связанный объект CDocTemplate.

Пользователи взаимодействуют с документом через объект(ы) CView, связанный с документом. Просмотр выполняет изображение документа в рамочном окне и интерпретирует ввод пользователя как операции на документе. Документ может иметь многократные просмотры, связанные с ним. Когда пользователь открывает окно на документе, рамка создает просмотр и присоединяет его к документу. Шаблон документа определяет какой просмотр, и рамочное окно используется, чтобы отобразить каждый тип документа.

Документы - часть стандартной маршрутизации команды рамки и следовательно получают команды от стандартных компонентов интерфейса пользователя (типа пункта меню File Save). Документ получает команды, посланные активным просмотром. Если документ не обрабатывает данную команду, это команда к передаеться к шаблону документа, который управляет им.

Когда данные документа изменяются, каждый из просмотров должен отразить те модификации. CDocument обеспечивает UpdateAllViews функцию для Вас, чтобы сообщить просмотрам относительно таких изменений, так что просмотры могут повторно красить себя по мере необходимости. Рамка также запрашивает пользователя сохранять изменяемый файл перед закрытием.

Чтобы выполнять документы в типичной прикладной программе, Вы должны делать следующее:

  1. Получите класс из CDocument для каждого типа документа.
  2. Добавьте поля, чтобы сохранить данные каждого документа.
  3. Выполните функции для чтения и изменения данных документа. Просмотры документа - наиболее важные пользователи этих функций.
  4. Перегрузите CObject::Serialize функцию в вашем классе документа, чтобы записывать и читать данные с диска.
#include <afxwin.h>

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 24.02.2002