C++ C++;MFC MDI如何更改基于活动文档显示的类视图
我正在开发一个MDI应用程序,它有一个对象浏览器(CClassView),必须根据激活的“文档”更改显示内容C++ C++;MFC MDI如何更改基于活动文档显示的类视图,c++,mfc,document,mdi,C++,Mfc,Document,Mdi,我正在开发一个MDI应用程序,它有一个对象浏览器(CClassView),必须根据激活的“文档”更改显示内容 PS:我的搜索都没有成功。这不是我所期望的,但这里有一个可能的解决方案: 问:如何在我的应用程序中的任何位置获取活动文档 答:有几种方法,一种是先获取活动帧 然后调用CFrameWnd::GetActiveDocument。。。在MDI应用程序中,我们 必须另外获取活动MDI子帧 此示例代码可能会建议其他(甚至更好)备选方案: 只有一个问题。据我所知,我的项目中没有CDocument类
PS:我的搜索都没有成功。这不是我所期望的,但这里有一个可能的解决方案: 问:如何在我的应用程序中的任何位置获取活动文档 答:有几种方法,一种是先获取活动帧 然后调用CFrameWnd::GetActiveDocument。。。在MDI应用程序中,我们 必须另外获取活动MDI子帧 此示例代码可能会建议其他(甚至更好)备选方案:
只有一个问题。据我所知,我的项目中没有
CDocument
类。我有CMyApp:CWinAppEx
,CChildFrame:CMDIChildWndEx
和CMainFrame:CMDIFrameWndEx
。有什么我遗漏的吗?
CDocument* GetMDIActiveDocument()
{
CDocument* pDoc = NULL;
CWnd* pWndMain = AfxGetMainWnd();
ASSERT(pWndMain);
ASSERT(pWndMain->IsKindOf(RUNTIME_CLASS(CMDIFrameWnd))); // Not an MDI app.
CFrameWnd* pFrame = ((CMDIFrameWnd*)pWndMain)->MDIGetActive();
if(NULL != pFrame)
{
pDoc = pFrame->GetActiveDocument(); // get the active document
}
return pDoc;
}