"Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2" - читать интересную книгу автора (Фролов Александр Вячеславович, Фролов...)

Создание шаблона текстовых документов

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

Шаблоны документов создаются объектом приложения во время его инициализации. Откройте метод InitInstance главного класса приложения CMultiApp. В нем создается только один объект класса CMultiDocTemplate, который представляет графический документ и средства для работы с ним.

Так как наше приложение должно работать не только с графическими, но и с текстовыми документами, вы должны создать еще один объект шаблона документов, представляющий текстовый документ. Класс текстового документа называется CEditorDoc, класс окна для его просмотра CEditorView. В качестве окна рамки мы используем класс CChildFrame. Ниже представлен соответствующий фрагмент метода InitInstance:

//////////////////////////////////////////////////////////////

// CMultiApp initialization


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_EDITORTYPE, RUNTIME_CLASS(CEditorDoc), RUNTIME_CLASS(CChildFrame), RUNTIME_CLASS(CEditorView));

 AddDocTemplate(pDocTemplate);


 // ...


 return TRUE;

}

При создании шаблона документов указывается идентификатор, который определяет меню, пиктограмму и некоторую другую полезную информацию, связанную с документами данного типа. Мы указали для шаблона текстового документа идентификатор IDR_EDITORTYPE. Здесь мы несколько забежали вперед, так как такой идентификатор еще не определен. Мы вернемся к ресурсам текстового документа в следующем разделе.

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