我用CSplitterWnd 分割窗口,怎样才能使分割的窗口大小固定,即使拖动分割条窗口大小也不改变? 立即给分!!谢谢!
从CSplitterWnd派生自己的切分窗口类CEkLockableSplitter,再重载OnMouseMove
void CEkLockableSplitter::OnMouseMove(UINT nFlags, CPoint point)
{
CWnd::OnMouseMove(nFlags, point);
}
不好,重载OnHitTest,该函数判断用户点击到什么文字,并根据这个确定形式光标的形状,因此,你可以在此方法特定的值.具体请查看帮助
先从CSplitterWnd派生一个自己的分割窗口类,
放在你的mainframe的OnCreateClient里做切分
比如说一个简单的左右切分:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,
CCreateContext* pContext)
{
if (!m_wndSplitter.CreateStatic(this, 1, 2))
return FALSE;
if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CLeftView), CSize(200, 100), pContext) ||
!m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CRightView), CSize(100, 100), pContext))
{
m_wndSplitter.DestroyWindow();
return FALSE;
}
return TRUE;
}
就这样了……m_wndSplitter是个CSplitterWnd,CLeftView CRightView是你的两个View
重载OnMouseMove并判断LBUTTONDOWN
void CEkLockableSplitter::OnMouseMove(UINT nFlags, CPoint point)
{
if(nFlags &....
}
up
不过在用classwizard时,选择的是generic CWnd ,然后自己手工改为CSplitterWnd为基类