界面上有两个分隔窗口,两行一列我用如下语句:
   CRect cRect;
   GetClientRect(&cRect);
   int iHeight=cRect.Height();
   int iWeight=cRect.Width();
   m_wndSplitter.DeleteView(1,0);//销毁下面一个窗体,并将上面窗体调整
           CWnd *pWnd=m_wndSplitter.GetPane(0,0);
   pWnd->SetWindowPos(pWnd,0,0,iWeight,iHeight,SWP_SHOWWINDOW);
结果把下面一个窗体删除了,但好像上面一个大小没有调整,很怪怪的!

解决方案 »

  1.   

    m_wndSplitter.SetColumnInfo(...);
    m_wndSplitter.ReclcLayout();//调用这句才立即调整。
    但deleteView后不再创建可能会有问题。
      

  2.   

    可以在WM_SIZE中设置
    m_wndSplitter.SetRowInfo(0, nHeight0, 0);
    m_wndSplitter.SetRowInfo(1, nHeight1, 0);
    m_wndSplitter.RecalcLayout();
      

  3.   

    flyelf,你这样实际上是将其中一个窗口隐藏,而不是删除,也是个好方法。不过难道不可以
    删除其中一个视图,并将另一个视图相应调整吗?