Visual C++. Описание стандартных классов - CDocTemplate
ОГЛАВЛЕНИЕ
Страница 49 из 238
CDocTemplate
CDocTemplate представляет собой абстрактный класс, определяет базисные функциональные возможности шаблонов документа. В функции CWinApp::InitInstance обычно создается один или несколько шаблонов документа, определяющих взаимодействие трех типов классов: класса документа, являющегося потомком класса Cdocument;класса представления, отображающего данные, хранящиеся в связанном с ним классе документа. Этот класс может быть потомком класса CView, CScrollView, CFormView или CEditView (класс CEditView может непосредственно использоваться в шаблонах документов);
класса окна, связанного с классом представления. Для однооконного приложения (SDI) базовым классом является класс CFrameWnd. Для многооконного приложения (MDI) базовым классом является класс CMDIChildWnd. Если приложение не использует нестандартные методы работы с окном, то в шаблоне документа может непосредственно использоваться класс CFrameWnd или CMDIChildWnd. В противном случае пользователю придется создать и использовать собственный класс, производный от одного из вышеперечисленных классов.
Приложение должно создавать по одному шаблону документа для каждого используемого в нем типа документа. Например, если приложение использует электронные таблицы и текстовые документы, оно должно иметь два объекта класса шаблона документа. Каждый шаблон документа ответственен за создание и управление всеми документами типа. Шаблон документа сохраняет указатели на объекты класса CRuntimeClass, соответствующие классам документа, представления и окна. Эти объекты класса CRuntimeClass создаются при создании шаблона документа. Шаблон документа содержит идентификаторы ресурсов, используемых совместно с данным типом документа (например, меню, значки или таблицы акселераторов). Шаблон документа также имеет строки, содержащие дополнительную информацию относительно типа документа. Они включают имя типа документа (например, "Рабочий лист") и расширение файла (например, ".xls"). Кроме того, шаблон документа может содержать другие строки, содержащие информацию, используемую интерфейсом пользователя приложения и диспетчером файлов Windows. Если приложение является контейнером объектов OLE, шаблон документа содержит также идентификатор меню, используемого при работе с данным объектом. Если приложение является сервером объектов OLE, шаблон документа, кроме идентификатора меню, содержит идентификатор инструментальной панели. Для определения этих дополнительных ресурсов OLE используются функции SetContainerInfo и SetServerInfo. Поскольку класс CDocTemplate является абстрактным классом, то с его объектами нельзя работать непосредственно. Типичное приложение использует один из двух производных от него классов, определенных в библиотеке MFC: CSingleDocTemplate, обеспечивающий работу однооконного приложения, и CMultiDocTemplate, обеспечивающий работу многооконного приложения. Если создаваемое пользователем приложение требует парадигмы интерфейса пользователя, существенно отличающейся от SDI или MDI, ему необходимо создать свой собственный класс, производный от CDocTemplate. Описание данного класса содержится в файле заголовка afxwin.h.