是这样的!
我想把窗口分割成像foxmail一样(只是作个比方)
(第一列是个发收件箱树型)
(第二列包含有2行,1行是邮件,2行是邮件的内容)
也就是说分的窗口不是标准的行列数量相等,某个单独的列又有可以分成几行我现在的只能实现n行m列,在单文档,mainform.cpp的oncreateClient中这样的代码
CSplitterWndEx m_wnd1;  
m_wnd1.CreateStatic(this,2,2,  WS_CHILD |WS_VISIBLE);
m_wnd1.CreateView(0,0,RUNTIME_CLASS(CView2),CSize (100,100),pContext);
m_wnd1.CreateView(0,1,RUNTIME_CLASS(CView2),CSize (100,100),pContext);
m_wnd1.CreateView(1,0,RUNTIME_CLASS(CView3),CSize (100,100),pContext);
m_wnd1.CreateView(1,1,RUNTIME_CLASS(CView4),CSize (100,100),pContext);
请问高手有没有办法,给出相应的代码,谢谢

解决方案 »

  1.   

    多搞几个CSplitterWndEx 就行了:
    参考
    http://www.vckbase.com/document/viewdoc/?id=192
      

  2.   

    使用多个视组合并用CSplitter应该能解决
      

  3.   

    是一层一层创建的,方法不同:
    创建最上层的用CreateView,创建底层的用CreateStatic
    也就是说如果“某个单独的列又有可以分成几行”,那么这个列要用CreateStatic,
    而如果其中的行不再划分,就用CreateView. // 创建整个区域
    m_wndSplitter.CreateStatic(this, 1, 3); // 创建总框架——1区域
    m_wndSplitter3.CreateStatic(&m_wndSplitter, 3, 1, WS_CHILD | WS_VISIBLE, 
    m_wndSplitter.IdFromRowCol(0, 0));
    // 创建总框架——2区域
    m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CView1), CSize(0, 0), pContext);
    _pVideoPane = (CView1 *)m_wndSplitter.GetPane(0, 1);
    // 创建总框架——3区域
    m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CView2), CSize(0, 0), pContext);
    _pFormatPane = (CView2 *)m_wndSplitter.GetPane(0, 2);
    // 设置区域列宽
    m_wndSplitter.SetColumnInfo(0, 200, 0);
    m_wndSplitter.SetColumnInfo(1, 700, 0);
    m_wndSplitter.SetColumnInfo(2, 100, 0); // 创建总框架——1区域——a区域
    m_wndSplitter3.CreateView(0, 0, RUNTIME_CLASS(CView3), CSize(0, 0), pContext);
    _pPTZPane = (CView3 *)m_wndSplitter3.GetPane(0, 0);
    // 创建总框架——1区域——b区域
    m_wndSplitter3.CreateView(1, 0, RUNTIME_CLASS(CView4), CSize(0, 0),pContext);
    _pCameraPane = (CView4 *)m_wndSplitter3.GetPane(1, 0);
    // 创建总框架——1区域——c区域
    m_wndSplitter3.CreateView(2, 0, RUNTIME_CLASS(CView5), CSize(0, 0),pContext);
    _pDigitalLinePane = (CView5 *)m_wndSplitter3.GetPane(2, 0);
    // 设置区域行高
    m_wndSplitter3.SetRowInfo(0, 100, 0);
    m_wndSplitter3.SetRowInfo(1, 300, 0);
    m_wndSplitter3.SetRowInfo(2, 200, 0);