I find the solution about restrict the size of the pane.
- First derive class XSplitterWnd from CSplitterWnd,
- Then handle the WM_ONSIZE,call the SetColInfo() and SetRowInfo() in OnSize function.
- And handle the WM_MOUSEMOVE and WM_SETCURSOR to prevent user from changing size.
void XSplitterWnd::OnSize(UINT nType, int cx, int cy)
{
RECT rect;
int Height;
GetClientRect( &rect );
Height = rect.bottom – rect.top – 36;
if ( m_pRowInfo != NULL )
if ( Height < 0 )
SetRowInfo( 0, 1, 1);
else
SetRowInfo( 0, Height, Height );
CSplitterWnd::OnSize(nType, cx, cy);
// TODO: Add your message handler code here
}
void XSplitterWnd::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
//CSplitterWnd::OnMouseMove(nFlags, point);
}
void XSplitterWnd::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
//CSplitterWnd::OnLButtonDown(nFlags, point);
}
BOOL XSplitterWnd::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
// TODO: Add your message handler code here and/or call default
//return CSplitterWnd::OnSetCursor(pWnd, nHitTest, message);
return FALSE;
}
Any comments and suggests, please let me know.
Regards, Sesame
Date Last Updated: March 24, 1999