非常感谢.

解决方案 »

  1.   

    下窗口的大小, 应该是当前窗口的大小, 而不是一个指定的大小, 当FRAME比下窗口还要小的时候, 那么下窗口应该会变小.
      

  2.   

    在OnSize中处理
    // 重新计算上窗口的大小
    m_wndSplitter.SetRowInfo(...); // 设置上窗口的大小m_wndSplitter.RecalcLayout();
      

  3.   

    代码级服务
    CMainFrame::CMainFrame()
    {
    bCreated = FALSE;
    oldx = oldy = 0;
    }BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) 
    {
    sp.CreateStatic(this, 2, 1); sp.CreateView(0, 0, RUNTIME_CLASS(CTest1View), CSize(0, 300), pContext);
    sp.CreateView(1, 0, RUNTIME_CLASS(CTest2View), CSize(0, 0), pContext); bCreated = TRUE;
    return TRUE;
    }
    void CMainFrame::OnSize(UINT nType, int cx, int cy) 
    {
    if(bCreated)
    {
    int y, m;
    sp.GetRowInfo(0, y, m);
    m = y+(cy-oldy);
    if(m<0)
    m=0;
    sp.SetRowInfo(0, m, 0);
    }
    oldx = cx;
    oldy = cy; CFrameWnd::OnSize(nType, cx, cy);
    }