在MFC对象之间的关系
为了帮助在透视图将文档/视图创建过程,请考虑正在运行的程序:文档、框架窗口用于包含视图和视图与文档。
文档保留视图中列出该文档和指针来创建文档的文档模板。
视图将指向其文档并为其父级框架窗口的子级。
文档框架窗口将指向其当前活动视图。
文档模板保留列出其打开文档。
应用程序保留列出其文档模板。
窗口记录所有打开窗口,以便它可以将消息发送到它们。
这些关系生成期间文档/视图创建。 下表显示了正在运行的程序的对象如何访问其他对象。 所有对象可以获取指向应用程序对象通过调用全局函数 AfxGetApp。
获取对在应用程序中的其他对象
从对象 |
如何访问其他对象 |
---|---|
Document |
指向文档的视图列表的访问的使用 GetFirstViewPosition 和 GetNextView 。 调用 GetDocTemplate 获取文档模板。 |
视图 |
调用 GetDocument 获取文档。 调用 GetParentFrame 获取框架窗口。 |
文档框架窗口 |
调用 GetActiveView 获取当前视图。 调用 GetActiveDocument 获取文档附加到当前视图。 |
MDI 框架窗口 |
调用 MDIGetActive 获取当前活动的 CMDIChildWnd。 |
通常,框架窗口有一个视图,但是,有时,在拆分窗口,同一框架窗口包含多个视图。 框架窗口保留的指针为当前活动的视图,指针,活动后,更新另一个视图。
备注
指针到主框架窗口在应用程序对象的 m_pMainWnd 成员变量存储。为 OnFileNew 的调用在您的 CWinApp 的 InitInstance 成员函数的重写设置您的 m_pMainWnd 。如果不调用 OnFileNew,必须在 InitInstance 的值。(SDI COM 组件 (服务器) 应用程序不能设置变量,如果 /Embedding 命令行中。)请注意 m_pMainWnd 现在是类 CWinThread 的成员 (而不是 CWinApp。