本来已经转载了一篇自己认为很不错的有关指针获取的文章了,但是发觉这篇文章也非常不错,也一并转过来。
(参见《MFC中获取各种类(文档、视图、框架、应用程序)指针的方法》:http://blog.csdn.net/yuvmen/archive/2010/09/11/5877232.aspx)
| 获得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() |