是不是先m_wndSplitter.CreateView后;再m_wndSplitter1.CreateView呀 

解决方案 »

  1.   

    在初始化的时候使用movewindow
      

  2.   

    if (!m_wndSplitterH.CreateStatic(this, 1, 2))
    return false;
    if (!m_wndSplitterH.CreateView(0, 0, RUNTIME_CLASS(CFormviewCommLeft), CSize(280,0), pContext)) 
    return false;
    m_pFormviewCommLeft = (CFormviewCommLeft*)m_wndSplitterH.GetPane(0, 0);
    m_wndSplitterV.CreateStatic(&m_wndSplitterH, 2, 1, WS_CHILD|WS_VISIBLE, m_wndSplitterH.IdFromRowCol(0,1)); m_wndSplitterV.CreateView(0, 0, RUNTIME_CLASS(CFormviewCommTop), CSize(1024, 150), pContext);
    m_pFormviewCommTop = (CFormviewCommTop*)m_wndSplitterV.GetPane(0, 0);
    m_wndSplitterH2.CreateStatic(&m_wndSplitterV, 1, 2, WS_CHILD|WS_VISIBLE, m_wndSplitterV.IdFromRowCol(1,0)); m_wndSplitterH2.CreateView(0, 0, RUNTIME_CLASS(CFormviewCommBottomLeft), CSize(240,0), pContext);
    m_wndSplitterH2.CreateView(0, 1, RUNTIME_CLASS(CFormviewCommBottomRight), CSize(600,300), pContext); m_pFormviewCommBottomLeft = (CFormviewCommBottomLeft*)m_wndSplitterH2.GetPane(0,0);
    m_pFormviewCommBottomRight = (CFormviewCommBottomRight*)m_wndSplitterH2.GetPane(0,1);

    CSize(280,0)就是指定大小的,楼主看看
    CRect rc;
        GetClientRect(&rc);
    rc的宽度和高度是不是有效的值
      

  3.   

    我也做过一次,单文档分成多窗格,前面能正常显示,是分割时候设置的宽度高度值,有一个因为涉及到二次分割,所以出现了跟你一样的状况。后来尝试,在分割结束之后,立即再设置一下,应该能实现。

    m_wndSplitter.SetRowInfo(0,3*rc.Height()/4,10);
    //设置该分割的行高度,参数:该分割欲设置的行号;理想高度;最小高度
    m_wndSplitter.RecalcLayout();