1

我正在开发一个具有对象浏览器 (CClassView) 的 MDI 应用程序,该对象浏览器必须根据活动的“文档”更改显示的内容。

PS:我的搜索都没有奏效。

4

1 回答 1

0

这不是我所期望的,但这是一个可能的解决方案:

http://forums.codeguru.com/showthread.php?473808-MFC-Doc-View-How-to-get-the-active-document-anywhere-in-my-application

问:如何在我的应用程序中的任何位置获取活动文档?

A:有几种方法,一种是先获取活动框架,然后调用CFrameWnd::GetActiveDocument。... 在 MDI 应用程序中,我们必须另外获取活动的 MDI 子框架。

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;
}

此示例代码可能会建议其他(甚至更好)替代方案:

http://msdn.microsoft.com/en-us/library/cstcs513%28v=vs.90%29.aspx

于 2013-05-14T01:24:23.200 回答