请问如何从CMainFrame对象得到当前的doc对象?
谢谢,
能否给出相应代码实例:)

解决方案 »

  1.   

    //注意 CFrameWnd根据具体的类名不同
    ( (CFrameWnd *) AfxGetApp() -> m_pMainWnd ) -> GetActiveDocument();(((CMainFrame*)AfxGetMainWnd())->m_wndSplitter.DoKeyboardSplit());( (CFrameWnd *) AfxGetApp() -> m_pMainWnd ) -> GetActiveView();/////////////////////////
    CMainFrame* pMainFrame = (CMainFrame*)(::AfxGetApp()->GetMainWnd());pMainFrame->m_wndStatusBar.SetPaneText( 0, "测试一下~" );//////////////////////////////////////
    ((CMainFrame*)AfxGetMainWnd())->SetMessageText("testasdf");///////////////////////////////////////
    CStatusBar* pStatus = (CStatusBar*)(AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_STATUS_BAR));///////////////////////////////////////
    CString sMessageText = ((CStatusBar*)((CMainFrame*)AfxGetMainWnd())->GetMessageBar())->GetPaneText(0);CMainFrame *pMainFrm = (CMainFrame *)AfxGetMainWnd();
    CFrameWnd *pChildFrm = pMainFrm->GetActiveFrameWnd();//这个获取当前活动的视图的CChildFrame
    //如果是单文档视图就没有必要获取这个CChildFrame了,直接获取当前活动的视图就可以了         
    if(pChildFrm != NULL)
    {
      CWnd *pView = pChildFrm->GetActiveView();//OK, That's you need.
    }