Создание нового класса документа

Некоторые многооконные приложения позволяют одновременно работать с документами различных типов.

Для создания нового класса документа, например COtherDoc, на основе базового класса CDocument используется ClassWizard. Это средство создает файл otherdoc.h с описанием класса COtherDoc и файл otherdoc.cpp, содержащий реализацию нового класса документа.

Для создания класса окна просмотра (COtherView) также используется средство ClassWizard, при помощи которого можно создать класс COtherView на базе CView или производных от него, определенных в библиотеке MFC.

Создание шаблона документа

Шаблоны документов, с которыми работает приложение, определяют все характеристики данного типа документа. Они включают информацию о классе документа, классе окна просмотра, классе окна рамки, а также о ресурсах, связанных с данным типом документа.

Шаблоны документов создаются объектом приложения во время его инициализации. Если, например, посмотреть на метод InitInstance главного класса приложения multi, то видно, что в нем создается только один объект класса CMultiDocTemplate, который представляет графический документ и средства работы с ним. Если необходимо, чтобы многооконное приложение работало и с другим типами документов, необходимо в методе InitInstance создать объект шаблона документов этих типов и добавить его в список шаблонов. Например:

BOOL CMultiApp::InitInstance() {....... CMultiDocTemplate* pDocTemplate; pDocTemplate = new CMultiDocTemplate(IDR_MULTITYPE,RUNTIME_CLASS(CMultiDoc), RUNTIME_CLASS(CChildFrame),RUNTIME_CLASS(CMultiView)); AddDocTemplate(pDocTemplate); pDocTemplate = new CMultiDocTemplate(IDR_OTHERTYPE,RUNTIME_CLASS(COtherDoc), RUNTIME_CLASS(CChildFrame),RUNTIME_CLASS(COtherView)); AddDocTemplate(pDocTemplate);.... return TRUE; }

При создании шаблона документов указывается идентификатор, который определяет меню, пиктограмму и некоторую другую полезную информацию, связанную с документами данного типа. В методе InitInstance класса в качестве шаблона текстового документа указан идентификатор IDR_OTHERTYPE (такой идентификатор еще не определен, о ресурсах текстового документа речь пойдет далее).

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: