用CSplitterWnd 分割两个窗口,是上下两个。
不管主窗口的大小如何发生变化,分割条的位置总是固定不变
我想随着主窗口大小变化,分割条让上下两个窗口大小比例不变。

解决方案 »

  1.   

    自己沙发补充一下,我的原始代码是这样的,不知还需要怎么改,高手指点
    BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,
    CCreateContext* pContext)
    {
    m_wndSplitter.CreateStatic(this,2,1);
    m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CTestSplit2View),CSize(400,400),pContext);
    m_wndSplitter.CreateView(1,0,RUNTIME_CLASS(CTestSplit2View),CSize(100,200),pContext); return true;}
      

  2.   

    需要在CMainFrame的OnSize中 通过CSplitterWnd::SetRowInfo 设置
      

  3.   

    CRect rc;
    GetClientRect(&rc); if (m_bSplitterWndCreated)//分割窗口已创建
    {
    m_wndSplitter.SetRowInfo(0, rc.Height() * 1 / 3, 10);
    m_wndSplitter.SetRowInfo(1, rc.Height() * 2 / 3, 10);

    m_wndSplitter.RecalcLayout();  


    }
      

  4.   

    CMainFrame类添加响应处理WM_SIZE消息,在OnSize中利用CSplitterWnd::SetRowInfo/SetColumnInfo();CSplitterWnd::RecalcLayout();来调整
      

  5.   

    heksn过来领分吧
    http://topic.csdn.net/u/20110422/01/6dfd222e-34f1-4c7e-a801-100159f037aa.html?67321