Отношения между объектами 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.
См. также
Основные понятия
Шаблоны документов и процесс создания документов и представлений