恐怕pContext->m_pNewViewClass做CRuntimeClass*参数是不行的:if (!m_wndSplitter.CreateStatic(this, 1, 2))
{
TRACE0("Failed to create splitter bar ");
AfxMessageBox("Failed to Create Static");
return FALSE;    // failed to create
}
// Get the client rect first for calc left pane size
CRect rect;
GetClientRect(&rect);
    
// create the left tree view first.
if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CXXView), CSize(rect.Width()/4, 0), pContext))
{
TRACE0("Failed to create left pane view\n");
AfxMessageBox("Failed to Create View");
return FALSE;
}
// The right pane is a frame which and contain several different views.
// The is can be set to active or non-active
if (!m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CXXView), CSize(0, 0), pContext))
{
TRACE0("Failed to create right pane frame\n");
return FALSE;
}
return TRUE;

解决方案 »

  1.   

    pContext->m_pNewViewClass做CRuntimeClass*参数是行的:程序运行正常,分隔条也都出现了,但上面两个窗口的高度几乎为零,须手动拖动分割条才能看见两个窗口,设csize()参数不起作用,那位大虾帮我试一试那段代码。
      

  2.   

    你错在这里:如果你上下分割的话,再把上面进行分割的话,在最后要设置上面视的大小,加入以下代码:
    m_wndSplitter1.SetColumnInfo(0, 150, 150);//你的初始大小,跟我当年遇到的一样
    m_wndSplitter1.RecalcLayout( );
      

  3.   

    vcmfc,你好,我一看到你分割窗口的贴字,我的是上下分割,再把上面进行左右分割,在最后要设置上面视的大小,但用m_wndSplitter2.SetColumnInfo(0, 150, 150);
                          m_wndSplitter2.RecalcLayout( ); 
    不行,请你仔细研究一下好吗?
      

  4.   

    m_wndSplitter.SetRowInfo(0, 200, 200);   //上下视的大小是SetRowInfo
    m_wndSplitter.SetColumnInfo(0, 150, 150);  //左右视的大小是SetColumnInfo
    m_wndSplitter.RecalcLayout( );如果还不行,可是试一试在你的m_pNewViewClass中重载WM_SIZE
      

  5.   

    还是不行,如果是先左右分割,在右边上下分割,vcmfc兄的方法可行。m_wndSplitter.SetRowInfo(0, 200, 200)在设置视的大小时,是不是因为是嵌套分割,没有取得正确的窗隔的原因,各位,谁遇到过这种情况,指教一下如何?
      

  6.   

    在这句以前if (!m_wndSplitter1.CreateView(1,0, pContext->m_pNewViewClass
    加上m_wndSplitter1.SetRowInfo(0,200,100)
    试一下
    我刚才调试的时候已经可以了
    ————
    |  |  |
    -------
    |     |
    ————
      

  7.   

    请到http://www.etechbase.net/advsearch.php,将你这个问题输入到检索框,然后选择准确匹配查询,应该可以帮助你解决这个问题的。