|
| 获得CWinApp | 获得CMainFrame | 获得CChildFrame | 获得CDocument | 获得CView |
| 在CWinApp中 |
| AfxGetMainWnd() m_pMainWnd | AfxGetMainWnd()->MDIGetActive() AfxGetMainWnd()->GetActiveFrame() | SDI:AfxGetMainWnd()->GetActiveView()->GetDocument() MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView()->GetDocument() | SDI:AfxGetMainWnd()->GetActiveView() MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView() |
| 在CMainFrame中 | AfxGetApp() theApp | MDIGetActive() GetActiveFrame() | SDI:GetActiveView()->GetDocument() MDI:MDIGetActive()->GetActiveView()->GetDocument() | SDI:GetActiveView() MDI:MDIGetActive()->GetActiveView() | |
| 在CChildFrame中 | AfxGetApp() theApp | GetParentFrame() |
| GetActiveView()->GetDocument() | GetActiveView() |
| 在CDocument中 | AfxGetApp() theApp | AfxGetMainWnd() | AfxGetMainWnd()->MDIGetActive() AfxGetMainWnd()->GetActiveFrame() | POSITION pos = GetFirstViewPosition();GetNextView(pos) | |
| 在CView中 | AfxGetApp() theApp | AfxGetMainWnd() | GetParentFrame() | GetDocument() | |
| 在其他类中 | AfxGetApp() | AfxGetMainWnd() | AfxGetMainWnd()->MDIGetActive() AfxGetMainWnd()->GetActiveFrame() | SDI:AfxGetMainWnd()->GetActiveView()->GetDocument() MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView()->GetDocument() | SDI:AfxGetMainWnd()->GetActiveView() MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView() |
原文出处: http://www.cnblogs.com/duguguiyu/archive/2007/06/22/792511.html
写的太好 不得不保留
MFC类关系
本文整理了MFC中几个核心类之间的关系及如何获取这些类的实例,包括CWinApp、CMainFrame、CChildFrame、CDocument和CView等。通过梳理这些类之间的交互逻辑,有助于理解MFC应用程序的基本架构。
190

被折叠的 条评论
为什么被折叠?



