MFC多文档程序如何在框架(CMainFrame)类中获得视类(CMyView)指针

  在博客上看到的大部分教程都是下面这种方法:            
```
 CMainFrame   *pMain=(CmaimFrame   *)AfxGetApp()->m_pMainWnd;   
 CXXXView     *pView=(CXXXView   *)pMain->GetActiveView();
```
最近写的程序,关闭主程序时要获取窗口视图的状态。很不幸的是,我用这种方法获取视类指针时一直为空。也许可能是我操作方式不对吧。在断点调试以后,我发现这种方法可以在frm中获取视图类指针
```
    CXXXView* pView;
    CMDIChildWnd* pMdi = ((CMDIFrameWnd*)AfxGetMainWnd())->MDIGetActive();
    if (pMdi)   //手动关了view窗口就为空了
    {
        pView = (CXXXView*)((CMDIFrameWnd*)pMdi)->GetActiveView();
    }
```
如果设置了view窗口是禁止关闭的,两行代码就可以搞定了
```
CXXXView* pView;
pView = (CXXXView*)((CMDIFrameWnd*)AfxGetMainWnd())->MDIGetActive()->GetActiveView();
```
另外说一下,我的这个是在CMainFrame类中的OnClose()里面实现的,亲测可行。

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值