分割窗口后如何限制分割条的移动范围
来源:互联网 发布:apache user daemon 编辑:程序博客网 时间:2024/06/10 03:00
分割窗口后如何限制分割条的移动范围
作者:刘良敏
做一个项目,把一个单文档的窗口分割成左右两列,同时还需要设置左边窗口的最小尺寸。
找了很多资料,都是针对对话框或者文档的,试了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; }
- 分割窗口后如何限制分割条的移动范围
- 分割窗口后如何限制分割条的移动范围
- 分割窗口后如何限制分割条的移动范围
- VC 界面窗口,静态分割后如何锁定分隔条或限制分隔条的移动范围
- VC 界面窗口,静态分割后如何锁定分隔条或限制分隔条的移动范围
- VC中分割窗口后如何限制分割条移动范围
- MFC分割窗口后如何去掉子窗口滚动条
- VC单文档分割窗口2--限制分割条
- [原创]MFC分割窗口后如何去掉子窗口滚动条
- 改变分割窗口拖动条的大小
- VC窗口的分割(锁定分割条与定制切分条)
- VC窗口的分割(锁定分割条与定制切分条)
- VC窗口的分割(锁定分割条与定制切分条)(详细阐述)
- VC窗口的分割(锁定分割条与定制切分条)(详细阐述)
- VC窗口的分割(锁定分割条和定制切分条)二
- VC窗口的分割(锁定分割条与定制切分条)
- vim的分割窗口
- 【CSplitterWnd技巧一】改变分割窗口拖动条的大小
- 第10章 Swing UI设计课后题
- 第一天
- 好好学习
- 写些东西
- 我的腾讯微博邀请码,欢迎一起微博吧【不断更新中……】
- 分割窗口后如何限制分割条的移动范围
- 使用VC6.0实现窗口的任意分割
- 委托排序
- (转)《编程之美》扫雷问题新解法
- 生活之所想
- 不好意思,这几天在忙着补习英语,没有发布笔记,随后补上。
- Ubuntu装机
- Hello,Linux guys!
- HQL查询及语法(转)