以下代码设置右边分割出的上下两个视图的比例。
总是第一次运行的时候上面的视图比以后再运行能少大约两指宽。
我怀疑是不是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);
}
总是第一次运行的时候上面的视图比以后再运行能少大约两指宽。
我怀疑是不是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);
}
m_wndSplitter2.GetPane(0,0)->GetClientRect(&rect);
从CSplitterWnd派生自己的切分窗口类CEkLockableSplitter,再重载OnMouseMove
void CEkLockableSplitter::OnMouseMove(UINT nFlags, CPoint point)
{
CWnd::OnMouseMove(nFlags, point);
}