POSITION CWinApp::GetFirstDocTemplatePosition() 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

POSITION CWinApp::GetFirstDocTemplatePosition()

Поиск

POSITION CWinApp::GetFirstDocTemplatePosition()

CDocTemplate* CWinApp::GetNextDocTemplate(POSITION &pos)

Функция

virtual CDocument* CWinApp::OpenDocumentFile(LPCTSTR lpszFileName)

открывет файл документа, заданный именем lpszFileName и возвращает указатель на соответствующий объект-документ. Если приложение поддерживает несколько шаблонов документов, то для выбора нужного шаблона MFC использует расширение файла.

 

Функции

afx_msg CWinApp::OnFileNew()

и

afx_msg CWinApp::OnFileOpen()

обрабатывают команды ID_FILE_NEW и ID_FILE_OPEN. В случае переопределения этих функций в пользовательских классах, в карту сообщений класса приложения необходимо добавить соответствующие макросы ON_COMMAND.

 

В заключение перечислим шаги, которые необходимо проделать программисту для организации работы в рамках архитектуры “документ/представление”:

 

1. Создать объект-приложение.

2. Создать объекты-документы.

3. Создать необходимое число представлений каждого документа.

4. В функции InitInstance объекта-приложения создать объекты-шаблоны документов и добавить их.

5. Создать необходимые ресурсы для каждого из них.

6. Создать и вывести на экран главный фрейм приложения (возможно, с присоединенными дочерними фреймами).

 

К счастью, все эти шаги уже выполнил за нас мастер AppWizard при создании каркаса приложения.

 

Маршруты команд в архитектуре Документ/представление

 

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

 

Поскольку команды формируются в результате взаимодействия пользователя с приложением, то, обычно, команда генерируется в главном окне приложения. Именно здесь, не будь каркаса приложения, Вам пришлось бы размещать обработчики команд. Благодаря же системе распределения команд библиотеки MFC, командные сообщения можно обрабатывать практически где угодно.

 

Возникает вопрос: что если данный объект не найдет в своей карте сообщений поступившую команду?В этом случаепоиск переносится в карту сообщений базовых классов, а если и там нет ассоциированного обработчика, то главное окно передает эту команду следующему кандидату на обработку. Для этого в библиотеке MFC определен стандартный маршрут, по которому передается команда.

 

Обнаружив команду от окна-рамки, каркас MDI-приложений начинает поиск соответствующих обработчиков в следующей последовательности:

 



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 50; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.198 (0.01 с.)