![]() |
![]() |
|
![]() |
||||||||||||||||||
![]() |
![]() |
![]() |
||||||||||||||||
|
![]() |
|
![]() |
|
||||||||||||||
![]() |
![]() |
![]() |
Шаг 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 рамка окна является обычно и рамкой документа. | | Автор Каев Артем. |
![]() |
![]() |
![]() |
|