SDI中做切分没问题,,但在MDI的MAINFRAME中切分执行就报错,
但在CHILD中切分,每个里面都被分为两个VIEW了,
我想做成1-N的,,象VC开发环境那样,,怎么做啊???

解决方案 »

  1.   

    VC里没有切分,是DOCK了DIALOGBAR.
      

  2.   

    你可以DOCK你的DIALOGBAR在MAINFRAME里,就可以实现1-N
      

  3.   

    英文资料
    http://www.codeproject.com/docking/sizecbar.asp
    www.datamekanix.com 中文资料
    http://www.vckbase.com/document/viewdoc.asp?id=257May you succeed!
      

  4.   

    这是我做的一个项目中的切分窗体函数,希望对你有用BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) 
    {
    // TODO: Add your specialized code here and/or call the base class
    CRect r;
    GetClientRect(&r);
    //创建一个静态分栏窗口,分为连两行一列 
         if(m_wndSplitter1.CreateStatic(this,2,1)==NULL) 
                  return FALSE;
        //将CLeftView连接到0行0列窗格上
          m_wndSplitter1.CreateView(1,0,RUNTIME_CLASS(CBottomView),CSize(0,0),pContext);      if(m_wndSplitter2.CreateStatic(&m_wndSplitter1,1,2,WS_CHILD|WS_VISIBLE, 
              m_wndSplitter1.IdFromRowCol(0, 0))==NULL) 
                   return FALSE; //将第0行0列再分开1行2列 
      //将CRightView类连接到第二个分栏对象的0行1列
         m_wndSplitter2.CreateView(0,1,RUNTIME_CLASS(CRightView),CSize(0,0),pContext); ////////////////////////////////////////////////////////
    //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    DWORD dwf = CGfxOutBarCtrl::fDragItems|CGfxOutBarCtrl::fEditGroups|CGfxOutBarCtrl::fEditItems|CGfxOutBarCtrl::fRemoveGroups|
    CGfxOutBarCtrl::fRemoveItems|CGfxOutBarCtrl::fAddGroups|CGfxOutBarCtrl::fAnimation; wndBar.Create(WS_CHILD|WS_VISIBLE, CRect(0,0,0,0), &m_wndSplitter2, m_wndSplitter2.IdFromRowCol(0, 0), dwf);
    wndBar.SetOwner(this);
    //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> imaLarge.Create(IDB_IMAGELIST, 32, 0, RGB(128,128,128));//创建大图标图象序列
    imaSmall.Create(IDB_SMALL_IMAGELIST, 16, 0, RGB(0,128,128));//创建小图标图象序列 wndBar.SetImageList(&imaLarge, CGfxOutBarCtrl::fLargeIcon);//建立联系
    wndBar.SetImageList(&imaSmall, CGfxOutBarCtrl::fSmallIcon);//建立联系 wndBar.SetAnimationTickCount(20);//动画 wndBar.SetAnimSelHighlight(200);//动画

    wndBar.AddFolder("监控", 0);//初始化 Folder 
    wndBar.AddFolder("监控", 1);
    wndBar.AddFolder("监控", 2); wndBar.InsertItem(0, 0, "日志", 0, 0);//Item 1
    wndBar.InsertItem(0, 1, "日志", 1, 0);//
    wndBar.InsertItem(0, 2, "日志", 2, 0);//Item 3
    wndBar.InsertItem(0, 3, "日志", 3, 0);//Item 4 wndBar.InsertItem(1, 0, "", 0, 0);
    wndBar.InsertItem(1, 1, "", 1, 0);//(CPU,内存) wndBar.InsertItem(2, 0, "", 0, 0); wndBar.SetSelFolder(0);
    //////////////////////////////
     
        
     //设置 各个窗体的大小 m_wndSplitter1.SetRowInfo(0,r.Height()*2/3,0);
    m_wndSplitter1.SetRowInfo(1,r.Height()*1/3,0);
    m_wndSplitter2.SetColumnInfo(0,r.Width()/6,0); pbView=(CBottomView*)this->m_wndSplitter1.GetPane(1,0);
    prView=(CRightView*)this->m_wndSplitter2.GetPane(0,1);
    prView->pBottomView=pbView;
    return TRUE; }
      

  5.   

    dock的view在focus,keyboard和active上面有各种问题,建议还是dock一般的窗口算了,反正view和窗口的区别只是文档支持而已