Учебник по Visual C++ .Net



Обзор функции Initlnstance Внесем - часть 2


Теперь можно приступить к созданию двух шаблонов документов вместо одного, рассмотренного выше. Для того чтобы задействовать второй шаблон, надо убрать из Initinstance код по созданию шаблона pDocTemplate и вставить вместо него такие строки:

//====== Создаем первый шаблон

m_pTemplTree = new CMultiDocTemplate(IDR_TreeTYPE,

RUNTIME_CLASS(CTreeDoc) ,

RUNTIME_CLASS(CTreeFrame) ,

RUNTIME_CLASS(CLeftView)) ;

//====== Помещаем его в список

AddDocTemplate(m_pTemplTree);

//====== Создаем второй шаблон

m_pTemplDraw = new CMultiDocTemplate(IDR_DrawTYPE,

RUNTIME_CLASS(CTreeDoc),

RUNTIME_CLASS(CDrawFrame),

RUNTIME_CLASS(CDrawView));

//====== Помещаем его в список

AddDocTemplate(m_pTemplDraw);

Второй шаблон тоже помещается в список шаблонов приложения. Каркас приложения устроен так, что теперь каждый раз, когда пользователь будет выбирать команду File > New, будет появляться диалог со списком шаблонов и просить его выбрать шаблон, которому должен соответствовать новый документ. Идентификатор ресурсов !DR_DrawTYPE определяется заранее, то есть в файле resource.h должна быть макроподстановка #def ine, заменяющая этот идентификатор целым положительным числом. Самым простым способом создания нового идентификатора является вызов команды Edit > Resource Symbols. Но этот способ будет некорректным

в нашем случае, так как мы поместили второй шаблон в список шаблонов, ассоциированных

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

Ресурсов, которые связаны со вторым шаблоном, может быть несколько, и мы покажем, как связать с ним значок, меню, панель инструментов и строковый ресурс, расположенный в таблице String Table. Последний является текстовой строкой, которая разбита символами ' \п' на отдельные части — подстроки. Каждая подстрока имеет определенное значение и используется каркасом приложения в разные моменты его жизни. Например, вторая подстрока является корнем для образования имен новых документов, и вы обычно видите ее в заголовке дочернего окна документа. Откройте окно Resource View, раскройте узел дерева под именем String Table и сделайте двойной щелчок на вложенном в него элементе. В таблице строк справа найдите iDR_TreeTYPE. Он идентифицирует комплексную строку:




Содержание  Назад  Вперед