Шаг 243 - Шаблон документов

Шаблон документа - это класс, который координирует процесс создания следующих классов:

Приложение может использовать любое колдичество шаблонов. Шаблон создается и регистрируется во время инициализации приложения (InitInstance). Соответственно каждый тип документа имеет свой шаблон.

CWinApp::InitInstance
{
	// создаем шаблон и добавляем в приложение
}

Для регистрации шаблонов создан специальный абстрактный класс CDocTemplate, от которого порождены два класса

SDI	CSingleDocTemplate
MDI	CMultiDocTemplate
Конструктор шаблона имеет следующий вид:
CDocTemplate 
(
	UINT nIDResource, 
	CRuntimeClass* pDocClass, 
	CRuntimeClass* pFrameClass, 
	CRuntimeClass* pViewClass 
);

Добавляется шаблон в класс приложения функцией AddDocTemplate

CWinApp::AddDocTemplate
void AddDocTemplate( CDocTemplate* pTemplate );

У приложения может быть много шаблонов.

        Приложение
	    |
   ________________________
   |      |       |	   |
Шаблон1 Шаблон2 Шаблон3  ....

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

	File Open					File New
	   |						   |         Нет
	Получение имени					Один шаблон   -> Спросить какой	
	   |	          
     Шаблон выбираеться по расширению			   | 			|
	   |						   |                    |
  	   |__________________________________  Создать  __|____________________|

Как видите объект приложения создает, хранит и организует доступ к шаблону. Разделение шаблонов на SDI и MDI связанно с тем, что в SDI рамка окна является обычно и рамкой документа.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 24.10.2000