限制窗口拉伸范围(二)——OnSizing
之前用的GetMinMaxInfo,在VS2015中会导致:Report模式的CListCtrl随窗口拉伸时,表头无法绘制超过原大小的区域。其他版本和控件未测试,而OnSizing没有这问题。
前一方法没有问题,经过详细测试后已排除了上述原因,已确认是对ClistCtrl的误操作导致。
对于 OnSizing ,一开始在网上找了半天都是残缺的使用方法,那些人都没想想参数 fwSide (Forward Side)有没有用,最后我为了代码可读性找了半天,最终通过VS的自动补完找到了宏定义。
例程只限制了最小范围,但完全可以实现限制最大范围。
其中 MINI_WIDTH 、 MINI_HEIGHT 为自定义的最小范围, WMSZ_XXXXXX 表示你拉伸的起点方向(共八个):
void CMyDlg::OnSizing(UINT fwSide, LPRECT pRect)
{
if (pRect->right - pRect->left < MINI_WIDTH) {
if (fwSide == WMSZ_LEFT
|| fwSide == WMSZ_TOPLEFT
|| fwSide == WMSZ_BOTTOMLEFT) {
pRect->left = pRect->right - MINI_WIDTH;
}
else {
pRect->right = pRect->left + MINI_WIDTH;
}
}
if (pRect->bottom - pRect->top < MINI_HEIGHT) {
if (fwSide == WMSZ_TOP
|| fwSide == WMSZ_TOPLEFT
|| fwSide == WMSZ_TOPRIGHT) {
pRect->top = pRect->bottom - MINI_HEIGHT;
}
else {
pRect->bottom = pRect->top + MINI_HEIGHT;
}
}
CDialogEx::OnSizing(fwSide, pRect);
}
限制窗口拉伸范围(二)——OnSizing的更多相关文章
- Python_selenium之窗口切换(二)
		
Python_selenium之窗口切换(二)一.思路拆分1. 之前有介绍窗口切换,这里加上断言部分2. 这里还是以百度新闻为例,获取百度新闻网址http://news.baidu.com/3. 同样 ...
 - 限制窗口拉伸范围——WM_GETMINMAXINFO
		
注意:此方法对CListCtrl的Report模式下的表头绘制有影响,用时需注意测试! 使用OnSizing的改进版 该例程用处为将窗口限制了大小,并且只允许上下拉伸.需要注意的是WM_GETMINM ...
 - JavaFX 之自定义窗口标题栏(二)
		
一.问题场景 PC客户端登录界面仿QQ,上边显示图片,下边显示输入框和登录按钮.而JavaFX默认的窗口,不满足需求. 二.解决思路 隐藏窗口默认的标题栏,使用创建label对象,使用css将按钮图片 ...
 - 【2016-11-6】【坚持学习】【Day21】【子窗口关闭时,同步关闭它的主窗口(方法二)】
		
根据上文,在子窗口设置一个委托.然后在子窗口关闭事件,执行委托实例,然后在主窗口增加监听委托的方法.... 想想,本事关闭事件就是一个特殊的委托.那么干嘛还要特意去声明一个新的呢?多此一举. 于是有下 ...
 - 【PyQt5 学习记录】008:改变窗口样式之二
		
super(MainWindow, self).__init__(parent, flags=Qt.Widget) 首先需要关闭窗口的默认样式,以方便定时想要的样式: self.setWindowFl ...
 - C#窗口皮肤制作(二):创建窗口库项目以及最小化、最大化、关闭button的实现
		
非常高兴有朋友关注这篇博客,同一时候也十分抱歉让关注的朋友久等了,隔上一篇博客也有3个月没有更新,主要是因为3月份辞职,4月份初离职到期离开了北京高德,来到了上海张江.眼下新工作也处于熟悉其中,希望大 ...
 - QTDesigner的QVBoxLayout自动随窗口拉伸
		
在MainWindow的构造函数中添加如下代码://设置Uiui.setupUi(this); //使Ui可自适应父窗口大小QVBoxLayout* mainLayout = new QVBoxLay ...
 - Windows程序设计笔记(二) 关于编写简单窗口程序中的几点疑惑
		
在编写窗口程序时主要是5个步骤,创建窗口类.注册窗口类.创建窗口.显示窗口.消息环的编写.对于这5个步骤为何要这样写,当初我不是太理解,学习到现在有些问题我基本上已经找到了答案,同时对于Windows ...
 - 如何在pyqt中自定义无边框窗口
		
前言 之前写过很多关于无边框窗口并给窗口添加特效的博客,按照时间线罗列如下: 如何在pyqt中实现窗口磨砂效果 如何在pyqt中实现win10亚克力效果 如何在pyqt中通过调用SetWindowCo ...
 
随机推荐
- 转:zookeeper3.4.5安装笔记
			
文章来自于:http://mmicky.blog.163.com/blog/static/150290154201392893623943/ 1:解压 官网zookeeper.apache.org ...
 - Android调用 Webservice报org.ksoap2.serialization.SoapPrimitive(转)
			
android Webservice开发的时候一般情况下大家接受webservice服务器返回值的时候都是使用SoapObject soapObject = (SoapObject) envelope ...
 - Keil使用中的若干问题
			
一.混合编程 1.模块内接口: 使用如下标志符: #pragma asm 汇编语句 #pragma endasm 注意:如果在c51程序中使用了汇编语言,注意在keil编译器中需要激活Properti ...
 - android:ListView的局部刷新
			
1.简介 对于android中的ListView刷新机制,大多数的程序员都是很熟悉的,修改或者添加adapter中的数据源之后,然后调用notifyDataSetChanged()刷新ListView ...
 - (转载)APC支持php5.4了
			
(转载)http://www.neatstudio.com/archives/?article-2061.html 时隔一年多,APC终于又更新了,这次更新最大的就是支持PHP5.4:- Add PH ...
 - oracle number 和sqlserver numeric的区别
			
number如果不指定范围默认是可以输入所有位数的小数,numeric如果不指定小数默认是不允许输入小数
 - 4. c++  静态 对象
			
参考自文章:http://blog.csdn.net/wpf_ml/article/details/7763534 1. 静态存储 变量定义在函数外或是用static 关键字修饰的变量存放在静态存储区 ...
 - Nodejs  上传下载功能的实现(同步)
			
上传和下载可分为两种,一种是form表单的形式(同步),另一种是Ajax的形式(异步). 示例一(form表单): html代码如下: <!DOCTYPE html> <html&g ...
 - ECLIPSE/MYECLIPSE OPERATES
			
Eclipse相关操作 1.删除所有注释 1.eclipse删除所有注释 Ctrl+F: /\*{1,2}[\s\S]*?\*/ 选择正则表达式,替换全部即可.
 - jquery animate
			
$(".logo").animate( { opacity: .25, //将不透明度逐渐变成.25 height: 0 //高度逐渐变成0 }, { duration: 1000 ...