Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16498663
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 21:00:19

下载本文示例代码
  找了很多资料,都是针对对话框或者文档的,试了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)这里的范围可以随你去设置了,够简单吧。   四、切分窗口   切分窗口就不用讲那么详细了,在MaiFram.h建立切分条对象: 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; } 编辑推荐:用MFC创建通用窗体分割框架   找了很多资料,都是针对对话框或者文档的,试了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)这里的范围可以随你去设置了,够简单吧。   四、切分窗口   切分窗口就不用讲那么详细了,在MaiFram.h建立切分条对象: 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; } 编辑推荐:用MFC创建通用窗体分割框架 下载本文示例代码


VC中分割窗口后如何限制分割条移动范围VC中分割窗口后如何限制分割条移动范围VC中分割窗口后如何限制分割条移动范围VC中分割窗口后如何限制分割条移动范围VC中分割窗口后如何限制分割条移动范围VC中分割窗口后如何限制分割条移动范围VC中分割窗口后如何限制分割条移动范围VC中分割窗口后如何限制分割条移动范围VC中分割窗口后如何限制分割条移动范围VC中分割窗口后如何限制分割条移动范围VC中分割窗口后如何限制分割条移动范围VC中分割窗口后如何限制分割条移动范围VC中分割窗口后如何限制分割条移动范围VC中分割窗口后如何限制分割条移动范围VC中分割窗口后如何限制分割条移动范围
阅读(159) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~