以下代码设置右边分割出的上下两个视图的比例。
总是第一次运行的时候上面的视图比以后再运行能少大约两指宽。
我怀疑是不是OnCreateClient的时候GetClientRect没有把菜单和工具栏算上?
该怎么办呐?CRect rect;
GetClientRect(rect);if (nFrameType == FRAMEMODE_FULL)//
{
m_wndSplitter2.SetRowInfo(0, 0, 10);
m_wndSplitter2.SetRowInfo(1, rect.Height(), 10);
}
else//分栏模式
{
m_wndSplitter2.SetRowInfo(0, rect.Height() / 5 * 2, 10);
m_wndSplitter2.SetRowInfo(1, rect.Height() / 2, 10);
}

解决方案 »

  1.   

    http://support.microsoft.com/kb/151032/en-us
      

  2.   

    获取分割视图的大小:
    m_wndSplitter2.GetPane(0,0)->GetClientRect(&rect);
      

  3.   

    CFrameWnd的GetClientRect本来就不算菜单和工具栏!视图的GetClientRect才是你要取的大小,不过你这个时候视图还没有创建
      

  4.   


    从CSplitterWnd派生自己的切分窗口类CEkLockableSplitter,再重载OnMouseMove
    void CEkLockableSplitter::OnMouseMove(UINT nFlags, CPoint point) 
    {
        CWnd::OnMouseMove(nFlags, point);
    }