Связи между объектов MFC
Помочь положил процесс создания документов и представлений в перспективу, рассматривает запуск программы: окно фрейма документа, используемое для хранения представление и представление, связанный с документом.
Документ хранится список представлений этого документа и указатель на шаблон документа, который создал документ.
Представление содержит указатель на документ и дочерним элементом своего родительского фрейма окна.
Окно фрейма документа содержится указатель на его текущий активный режим.
Шаблон документа хранится список его открытых документов.
Приложение хранит список его шаблоны документа.
Окна вести отслеживание всех открытых windows, поэтому она может отправлять сообщения к ним.
Эти связи устанавливаются во время создания документов и представлений.В следующей таблице приведены как объекты в выполняемой программе могут получить доступ к другим объектам.Любой объект может получить указатель на объект приложения с помощью глобальной функции AfxGetApp.
Получение доступа к другим объектам в приложении
Из объекта |
Как получить доступ к другим объектам |
---|---|
Document |
Используйте GetFirstViewPosition и GetNextView для доступа к списку представления документа. Вызов GetDocTemplate для получения шаблон документа. |
Просмотр |
Вызов GetDocument для получения документ. Вызов GetParentFrame для получения окно фрейма. |
Окно фрейма документа |
Вызов GetActiveView чтобы получить текущее представление. Вызовите GetActiveDocument для получения документ вложенный к текущему представлению. |
Окно фрейма MDI |
Вызовите MDIGetActive для получения активное в данный момент CMDIChildWnd. |
Обычно окно фрейма имеет одно представление, но иногда, как в окнах разделитель, одно и то же окно фрейма содержит несколько представлений.Окно фрейма содержит указатель текущего активного представления; указатель обновляется каждый раз, когда другое представление активированы.
Примечание |
---|
Указатель на окно главного фрейма хранится в переменной члена m_pMainWnd объекта приложения.Вызов OnFileNew в переопределенном методе функции-члена InitInstanceCWinApp задает m_pMainWnd.Если не вызвать OnFileNew, то ее необходимо присвоить значение переменной в InitInstance.(Приложения COM компонентов сервера SDI () не может установить переменную, если командной строки /Embedding). Обратите внимание, что теперь m_pMainWnd член класса CWinThread, а не CWinApp. |
См. также
Основные понятия
Шаблоны документов и процесс создания документов и представлений