三叉窗口,两上一下。(上面的两个左右并排)
我采用下列的代码创建,得出的后果是被最下面的View将全部视图占满。
可是我创建一上两下,就没问题了。下面是我的代码,望各位指教。谢谢!!!
m_wndSplitter.CreateStatic(this, 2, 1);m_wndSplitter_2.CreateStatic(&m_wndSplitter,1,2,
                             WS_CHILD | WS_VISIBLE,
                             m_wndSplitter.IdFromRowCol(1,0));m_wndSplitter_2.CreateView(0, 0, RUNTIME_CLASS(CMyLeftView),
                           CSize(150, 300), pContext);m_wndSplitter_2.CreateView(0, 1, RUNTIME_CLASS(CMyRightView),
                           CSize(0, 300),pContext);m_wndSplitter.CreateView(1, 0, RUNTIME_CLASS(CBottomView),CSize(0, 0), pContext);    

解决方案 »

  1.   

    m_wndSplitter_2.CreateStatic(&m_wndSplitter,1,2,
                                 WS_CHILD | WS_VISIBLE,
                                 m_wndSplitter.IdFromRowCol(0,0)); //可能是这里的问题。
      

  2.   

    在:m_wndSplitter.CreateStatic(this, 2, 1);后面加上:
    m_wndSplitter.SetRowInfo(0, 200, 100);
    m_wndSplitter.SetRowInfo(1, 200, 100);
      

  3.   

    最后的行应该是这样的吧
    m_wndSplitter_2.CreateView(1, 0, RUNTIME_CLASS(CBottomView),CSize(0, 300), pContext);
      

  4.   

    BOOL CChildFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext* pContext)
    {
    m_wndSplitter.CreateStatic(this, 2, 1);
    m_wndSplitter.SetRowInfo(0, 100, 10);
    m_wndSplitter.SetRowInfo(1, 100, 10); m_wndSplitter2.CreateStatic(&m_wndSplitter, 1, 2, WS_CHILD|WS_VISIBLE, m_wndSplitter.IdFromRowCol(0, 0));
    m_wndSplitter2.CreateView(0, 0, RUNTIME_CLASS(CLeftView),
                               CSize(150, 300), pContext);
    m_wndSplitter2.CreateView(0, 1, RUNTIME_CLASS(CRightView),
                               CSize(0, 300),pContext); m_wndSplitter.CreateView(1, 0, RUNTIME_CLASS(CBottomView),
                                        CSize(0,300), pContext); return TRUE;
    }