各位:我想做一个多文档程序将我以前做的报表统计和图形统计程序集成到一个程序里,报表统计用chtmlview,图形统计用嵌有我写的一个图形控件的cscrollview.要求根据菜单点击自动切换视图。并且如果上次做的是报表统计,这次还是报表统计时能够不关闭上一个view,自动新建一个view(从chtmlview派生),图表统计时也是。该如何实现?最好有例子代码,小弟在此先谢各位了!

解决方案 »

  1.   

    虽然你的分很少,但是我还是告诉你这个问题的答案
    我曾经做过一个类似的程序,而且也是用CHtmlView和CScrollView,如下是一个切换窗口的关键代码。
    void CMainFrame::SwitchToView(BOOL CurView)
    {//HTML视图不用重建,CURVE视图应该重建,因为初始的视图为CHtmlView CView *pHtml,*pCurve,*pTemp;
    CDocument *pDoc;
    pHtml=pCurve=NULL;
    pDoc=GetActiveDocument();
    POSITION pos=pDoc->GetFirstViewPosition ();
    while(pos){
    pTemp=pDoc->GetNextView (pos);
    if(pTemp->IsKindOf (RUNTIME_CLASS(CSwatchView))) pHtml=pTemp;

    if(pTemp->IsKindOf (RUNTIME_CLASS(CCurveView)))
    pCurve=pTemp;
    }
    if(pCurve==NULL){
    pCurve=new CCurveView;
    /* pCurve->Create(NULL, NULL, WS_BORDER,
                CFrameWnd::rectDefault, this,4, CurContext);*/
    pCurve->Create(NULL, NULL, AFX_WS_DEFAULT_VIEW,
    rectDefault, this, AFX_IDW_PANE_FIRST + 1, NULL);
    pDoc->AddView (pCurve);
       }
    if(CurView){//html视图
    int nID=pHtml->GetDlgCtrlID ();
    pHtml->SetDlgCtrlID (AFX_IDW_PANE_FIRST);
    pCurve->SetDlgCtrlID (nID);
    pHtml->ShowWindow (SW_SHOW);
    pCurve->ShowWindow (SW_HIDE);
    }
    else{//曲线视图
    int nID=pCurve->GetDlgCtrlID ();
    pCurve->SetDlgCtrlID (AFX_IDW_PANE_FIRST);
    pHtml->SetDlgCtrlID (nID);
    pHtml->ShowWindow (SW_HIDE);
    pCurve->ShowWindow (SW_SHOW);
    } RecalcLayout();}
      

  2.   

    email 留下。我发个简单的例子给你。