我想在cmainframe中修改文档类中的变量,调用的是getactivedocument()函数,为什么执行的时候提示“执行了非法操作“呢?

解决方案 »

  1.   

    如果是MDI不能直接在CMainFrame中GetActiveDocument,要通过child frame过渡一下:CFrameWnd* pActiveFrame=GetActiveFrame();
    if(pActiveFrame)
       CDocument* pDocument=pActiveFrame->GetActiveDocument();
    else
       //no active frame,no active document
      

  2.   

    问题模糊。Debug后,再说问题吧
      

  3.   

    肯定是没有得到active document ,
    若是MDI 的,也不妨试试下面的语句段(在cmainframe中写下列代码)

    CMDIChildWnd* pActiveChild = MDIGetActive();
    CDocument* pDocument;
    if(pActiveChile != NULL)
    {
         pDocument = pActiveChild->GetActiveDocument();
    }
    else
    {
         AfxMessageBox(AFX_IDP_COMMAND_FAILURE);
         return;
    }我没装VC,没法调试,webber84(***闭关修炼中***) 的 你也试试,不知道谁的更好。