在CView中如何得到CMainFrame的变量

本文介绍了MFC应用程序中各个核心组件之间的关联方式,包括如何通过全局函数AfxGetApp获取CWinApp应用类指针,以及如何从不同层级的对象中获取当前活动的文档、视图和其他相关对象的指针。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//全局函数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())。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值