на начало
На главную страницу
Форум   

Статья :: Документ и его представления

 

Документ и его представления

Библиотека MFC предоставляет 3 различных способа создания окон-рамок, обрамляющих представления. Два явных способа: вызов методов CFrameWnd:: Create или CFrameWnd:: LoadFrame и один неявный — путем создания шаблона документа. Класс MFC-приложения в рамках многодокументного интерфейса (MDI) поддерживает динамический список шаблонов документов, то есть объектов класса CMultiDocTemplate. Каждый из них управляет оркестром из четырех музыкантов: ресурсы, документ, связаное с ним представление и обрамляющее его окно-рамка. Этот квартет составляется в момент создания нового объекта CMultiDocTemplate внутри метода initinstance класса приложения, в нашем случае СТгееАрр. Найдите это место в программе и убедитесь, что параметрами конструктора являются перечисленные музыканты:

CMultiDocTemplate* pDocTemplate;

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

pDocTemplate = new CMultiDocTemplate(IDR_TreeTYPE,

RUNTIME_CLASS(CTreeDoc), // документ

RUNTIME_CLASS(CTreeFrame), // окно-рамка

RUNTIME CLASS(CLeftView)); // представление

//====== Вставка адреса шаблона в динамический список

AddDocTemplate(pDocTemplate);

Мы можем при желании поменять состав квартета, но должны оставить неизменным количество его исполнителей. В наши цели входит создание еще одной новой комбинации. Тот же документ будет связан с другими ресурсами I DR_DrawTYPE, другим представлением (CDrawView) и другой рамкой (CDrawFrame). Так как мы хотим управлять обоими квартетами, то удобно запомнить в классе приложения их адреса и пользоваться ими при необходимости создать новое или активизировать существующее окно MDI-документа. Введите в состав класса CTreeApp две public-переменные, которые будут хранить эти адреса. С учетом незначительных сокращений интерфейс класса должен иметь такой вид:

class CTreeApp : public CWinApp

{

public:

//====== Два шаблона документов

CMultiDocTemplate *m_pTemplDraw; CMultiDocTemplate *m_pTemplTree;

CTreeApp () ;

virtual BOOL Initlnstance();

afx_msg void OnAppAbout();

DECLARE_MESSAGE_MAP()

};

 

Документ и его представления

страницы в данном разделе 
Урок 5. Управление файловым деревом Управление файловым деревом
Настройка стартового кода Список изображений, ассоциируемый с деревом
Обращаемся к операционной системе Реакция на уведомляющие сообщения CTreeCtrl
Реакция на выбор узла дерева Класс CPolygon
Конструкторы и операции Вспомогательные функции
Развитие класса документа Документ и его представления
Обзор функции Initlnstance Ресурсы шаблона документов
Класс для нового представления документа Класс для просмотра изображений
Окна с геометрией данных Взаимодействие представлений документа
Визуальное редактирование данных Отслеживание состояния команд
Тестирование Немодальный диалог
Создание и связывание переменных с полями диалога Обработка сообщений от элементов управления
Нестандартные кнопки Немодальный режим работы


Содержание сайта (выборка)
Apache
Протоколы TCP/IP (принципы, протоколы и архитектура)



PHP, PELR, JSP
PHP
JavaServer Pages (JSP)

Базы данных
Основы mysql
СУБД INFORMIX
СУБД POSTGRES
Основы проектирования реляционных баз данных

HTML, javascript
Спецификация HTML 4.01
Каскадные Таблицы Стилей, Уровень 2
Клиентский JavaScript. Справочник.
JavaScript руководство пользователя
Серверный JavaScript 1.4. Руководство по Использованию.

Паскаль, C, C++, C#
GCC (примеры)
FAQ Валентинa Озеровa DELPHI
C



 
© faq.pp.ru, справочник программиста