在博客上看到的大部分教程都是下面这种方法:
```
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()里面实现的,亲测可行。