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

解决方案 »

  1.   

    也就是MDI吧.
    就是一个当前的from被激活吧
      

  2.   

    把窗口Create出来后,根据需要进行show/hide
      

  3.   

    flyelf(空谷清音)
    你的意思我知道 ,有没有例子呀,分数不够我再开新贴加
      

  4.   

    同意flyelf(空谷清音),下面有一个方法希望对你有帮助
    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))); 上面只是提供一个相关的思路,具体应用和这个也差不多!
    希望对你有帮助吧!
      

  5.   

    你的这种效果可以用tabCtrl 来实现,每个 tab页上就是你要用的东西!