在CView中如何得到CMainFrame的变量

//全局函数AfxGetApp可以得到CWinApp应用类指针 
//AfxGetApp()->m_pMainWnd为框架窗口指针 
//在框架窗口中:CFrameWnd::GetActiveDocument得到当前活动文档指针 
//在框架窗口中:CFrameWnd::GetActiveView得到当前活动视图指针 
//在视图中:CView::GetDocument得到对应的文档指针 
//在文档中:CDocument::GetFirstViewPosition,CDocument::GetNextView用来遍历所有和文档关联的视。 
//在文档中:CDocument::GetDocTemplate得到文档模板指针 
//在多文档界面中:CMDIFrameWnd::MDIGetActive得到当前活动的MDI子窗口


//用以下语句:
CMainFrame *pFrame = (CMainFrame*)(AfxGetApp()->m_pMainWnd);
//就可以获得CMainFrame的自定义成员了。
//注意,不能用AfxGetApp()->GetMainWnd()或AfxGetMainWnd(),他们只能获得CMainFrame父类的指针,而且可能是一个临时对象的指针,即使用CMainFrame*强制返回结果,也访问获取在CMainFrame中自定义的成员。
//顺便问一下,为什么不用MFC的Document/View框架,把一些属性定义在Document中,
//这样在view中访问则易如反掌。(用CView::GetDocument())。

猜你喜欢

转载自blog.csdn.net/thanklife/article/details/90374573