当前位置: 首页 > 图文教程 > 开发语言 > VC++ > 分割窗口后如何限制分割条的移动范围
分割窗口后如何限制分割条的移动范围 做一个项目,把一个单文档的窗口分割成左右两列,同时还需要设置左边窗口的最小尺寸。 找了很多资料,都是针对对话框或者文档的,试了OnSizing和GetMinMaxInfo,结果对分割窗口无效。 一、新建一个类CMySplitter,基类为CSplitterWnd 二、重载该类的OnMouseMove函数: void CMySplitter::OnMouseMove(UINT nFlags, CPoint point){ // 限制切分条的运动范围。 if(point.x<228||point.x>600) { CWnd::OnMouseMove(nFlags, point); } else { CSplitterWnd::OnMouseMove(nFlags, point); } } 三、 然后就可以跟一般的窗口分割那样去做了,if(point.x<228||point.x>600)这里的范围可以随你去设置了 ^_^,够简单吧。 四、切分窗口 protected: CMySplitter m_wndSplitter; //切分窗口对象 //在MaiFram.cpp中实现窗口切分: 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(228, 100), pContext) || !m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CDataEditView), CSize(100, 100), pContext)) { m_wndSplitter.DestroyWindow(); return FALSE; } return TRUE; } (全文完) |
评论 (0) All