Поделиться через


Шаблоны документов и процесс создания документов и представлений

Для управления сложным процессом создания документов с соответствующими представлениями и окнами кадров платформа использует два класса шаблонов документов: CSingleDocTemplate для приложений SDI и CMultiDocTemplate для приложений MDI. Может CSingleDocTemplate создавать и хранить один документ одного типа одновременно. Список CMultiDocTemplate многих открытых документов одного типа сохраняется.

Некоторые приложения поддерживают несколько типов документов. Например, приложение может поддерживать текстовые документы и графические документы. В таком приложении, когда пользователь выбирает команду "Создать" в меню "Файл", в диалоговом окне отображается список возможных новых типов документов для открытия. Для каждого поддерживаемого типа документа приложение использует отдельный объект шаблона документа. На следующем рисунке показана конфигурация приложения MDI, поддерживающего два типа документов и отображающая несколько открытых документов.

Diagram of an MDI application that has two document types.
Приложение MDI с двумя типами документов

Шаблоны документов создаются и поддерживаются объектом приложения. Одной из ключевых задач, выполняемых во время работы приложения InitInstance , является создание одного или нескольких шаблонов документов соответствующего типа. Эта функция описана в разделе "Создание шаблона документа". Объект приложения сохраняет указатель на каждый шаблон документа в списке шаблонов и предоставляет интерфейс для добавления шаблонов документов.

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

Значок регистрируется для каждого шаблона документа на основе его положения в списке шаблонов документов приложения. Порядок шаблонов документов определяется порядком их добавления с вызовами AddDocTemplate. MFC предполагает, что первый ресурс значка в приложении является значком приложения, следующим ресурсом значка является первый значок документа и т. д.

Например, шаблон документа является третьим из трех для приложения. Если в приложении есть ресурс значка в индексе 3, этот значок используется для шаблона документа. В противном случае значок по индексу 0 используется в качестве значения по умолчанию.

См. также

Общие разделы по MFC
Создание шаблонов документов
Создание документа и представления
Отношения между объектами MFC
Создание документов, окон и представлений