我用CJLibrary想做成OutLookBar风格的框架,按Bar上的按钮实现单文档切换,每一个文档都是CFormView,请问如何实现,分好说。

解决方案 »

  1.   

    晕,csdn里的高手都跑到哪里去啦。
      

  2.   

    留MAIL发给你
    不过不是FORMVIEW的
    全是派生自CVIEW的
      

  3.   

    其实CJLibrary的单文档视图切换和普通的单文档的视图切换的原理是一样的!
    下面是一个如何实现普通的单文档程序视图切换的一点简单说明
    1.为每个视图定义ID
    2.定义个SwitchView(nvID)的函数CView *pOld=GetActiveView();
    CView *pNew=(CView*)GetDlgItem(nvID);
    if(pNew==NULL)//如果第一次的话
    {
    switch(nV)
    {
    case IDVIEW_XXX:
    pNew=(CView*) new CMyViewXXX;
    break;
    case IDVIEW_XXX:
    pNew=(CView*) new CMyViewXXX;
    break;
    }
    CCreateContext context;
    context.m_pCurrentDoc=pOld->GetDocument();
    pNew->Create(NULL,NULL,WS_BORDER,
    CFrameWnd::rectDefault,this,nvID,&context);
    pNew->OnInitialUpdate();
    }
    this->SetActiveView(pNew);
    pNew->ShowWindow(SW_SHOW);
    pOld->ShowWindow(SW_HIDE);pOld->SetDlgCtrlID(
    pOld->GetRuntimeClass()==RUNTIME_CLASS(CMyEdit)?0:1);
    //此处必须旧的视图的ID改回你设置的ID,因为当它活动的时候
    //ID是AFX_IDW_PANE_FIRST
    pNew->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
    //当前活动视图ID必须是AFX_IDW_PANE_FIRST
    this->RecalcLayout();4.菜单设置
    pCmdUI->Enable(!GetActiveView()->IsKindOf(RUNTIME_CLASS(CMyView))); 希望对你有所帮助!
      

  4.   

    cjlibar库里带有例子,很好的,自己去昭昭看,就在你的机子上,如果你已经安装了CJLibrary