软件频道>程序开发>JavaVBVCDelphiC/C++Web开发微软专栏移动数据库程序人生软件工程|开发客
您现在的位置: 天极网 > 开发频道 > VC中分割窗口后如何限制分割条移动范围
全文

VC中分割窗口后如何限制分割条移动范围

2005-11-05 10:41作者:刘良敏出处:vckbase责任编辑:方舟
天极软件专题专区精选     到天极软件“读编交流区”畅所欲言
Google专区 POPO专区 QQ专区 QQ挂机 了解Web2.0
Flash MX 视频教程 Photoshop视频教程 网页设计视频教程 照片处理数字暗房
PPT动画演示教程 Excel动画教程集 Word动画演示教程 Windows Vista专区
特洛伊木马专区 黑客知识教程专区 防火墙应用专区 注册表应用专区
Windows API开发专区 网络编程专区 VB数据库编程专区 图像处理与多媒体编程

  做一个项目,把一个单文档的窗口分割成左右两列,同时还需要设置左边窗口的最小尺寸。

  找了很多资料,都是针对对话框或者文档的,试了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;  
} 

软件资讯·软件下载尽在天极软件

相关搜索:
关注此文读者还看过
文章排行
本周
本月
最近更新
关于我们|About us|网站律师|天极服务|电子杂志|RSS订阅|加入我们|网站地图
TMG
Copyright (C) 1999-2009 Chinabyte.com, All Rights Reserved 版权所有 天极网络
商务联系、网站内容、合作建议:010-82657868
版权声明 在线提交意见反馈 渝ICP证B2-20030003号
经营性网站备案信息 网警备案 中国网站排名
天极传媒:天极网|比特网|IT专家网|IT商网|52PK游戏网|IT分众