MFC窗口自动缩放
来源:互联网 发布:淘宝电器商城首页 编辑:程序博客网 时间:2024/05/16 13:41
MFC窗口自动缩放
常见的对话框可以随意变换大小,而且其窗口中的控件可以随之按照一定比例缩放。在万能的百度里找到了一个easysize的宏文件。研究了一下,觉得这位大神真是厉害。本笔记就如何使用该easysize进行简要说明。
1. download这个easysize.h的文件,放在工程目录下。在主界面的.h文件下增加#include”easysize.h”.
2. 在主类的声明下添加一个宏DECLARE_EASYSIZE,该宏在easysize.h中定义了两个封装好的函数。在OnInitDialog()函数里添加宏 INIT_EASYSIZE;记忆下当前各空间的初始尺寸/位置信息。
3. 在.cpp中添加ON_WM_SIZE()消息。在.h文件中声明onsize()函数,在.cpp文件中定义该函数。在函数中加入UPDATE_EASYSIZE。
4. 在cpp文件中添加EASYSIZE 的宏映射。
BEGIN_EASYSIZE_MAP(CTestDlg)EASYSIZE(IDC_BUTTONT1,ES_BORDER,ES_BORDER,ES_BORDER,ES_BORDER,0)EASYSIZE(IDC_LIST1,ES_BORDER,ES_BORDER,ES_BORDER,ES_BORDER,0)END_EASYSIZE_MAP
此函数原型为EASYSIZE(control,left,top,right,bottom,options)
该宏表示对ID值为control的控件实施缩放效果,缩放后的上下左右位置由control,left,top,right,bottom来确定,大小由option确定。
其中:control为对话框中的控件ID值,left,top,right,bottom四个参数为控件位置的坐标,其值可以选择ES_BOARD,ES_KEEPSIZE,控件ID值三者之一。Options可以为ES_HCENTER, ES_VCENTER的结合,options可置0。
ES_BOARD表示控件与对话框边界(以下简称边界)的距离;
ES_KEEPSIZE表示控件水平/垂直方向上尺寸保持不变;控件ID值表示当前控件与指定控件之间的距离;
ES_HCENTER表示缩放后控件在指定位置内水平居中;
ES_VCENTER表示缩放后控件在指定位置内垂直居中;
例如:
EASYSIZE(IDOK,ES_BORDER,ES_BORDER,ES_BORDER,ES_BORDER,0)
表示缩放后,值为IDOK的控件,距离边界上下左右位置保持不变,水平和垂直方向尺寸拉伸;
EASYSIZE(IDOK,ES_BORDER,ES_BORDER,ES_BORDER,ES_BORDER,ES_HCENTER)
表示缩放后,值为IDOK的控件,距离边界上下位置保持不变,垂直方向尺寸拉伸,水平居中;
EASYSIZE(IDOK,ES_BORDER,ES_BORDER,ES_BORDER,ES_BORDER,ES_HCENTER|
ES_HCENTER)
表示缩放后,值为IDOK的控件,在对话框内垂直居中,水平居中;
EASYSIZE(IDC_BUTTON1,ES_BORDER,IDC_COMBO_TARIDS,ES_BORDER,ES_KEEPSIZE,ES_HCENTER)
EASYSIZE(IDOK,ES_BORDER,ES_KEEPSIZE,ES_KEEPSIZE,ES_BORDER,0)
表示缩放后,值为IDOK的控件,距离边界左、下方位置保持不变,同时保持控件尺寸;
EASYSIZE(IDOK,ES_BORDER,ES_KEEPSIZE,ES_BORDER,ES_BORDER,0)
表示缩放后,值为IDOK的控件,距离边界左、右、下方位置保持不变,水平方向尺寸拉伸,垂直方向尺寸不变;
EASYSIZE(IDOK,ES_BORDER,ES_BORDER,IDCANCEL,ES_BORDER,0)
表示缩放后,值为IDOK的控件,距离边界上下左位置保持不变,距离ID值为IDCANCEL的右方位置距离保持不变,水平和垂直方向尺寸拉伸;(当使用指定控件作为定位参数时候,确保指定控件
的EASYSIZE在该宏前面)
5.实现一行三个(奇数个)控件的均匀分布:
首先定义中间控件的位置,重点是水平居中ES_HCENTER
EASYSIZE(IDC_BUTTON1,ES_BORDER,IDC_COMBO_TARIDS,ES_BORDER,ES_KEEPSIZE,ES_HCENTER)
其次定义其左右两个(偶数个)控件的位置,左边的Right为中间控件,右边的Left为中间控件。
EASYSIZE(IDC_BUTTONCONFIG,ES_BORDER,IDC_COMBO_TARIDS,IDC_BUTTON1,ES_KEEPSIZE,0)EASYSIZE(IDC_BUTTONCANCEL,IDC_BUTTON1,IDC_COMBO_TARIDS,ES_BORDER,ES_KEEPSIZE,0)
一行有偶数个控件时,可以在中间添加一个辅助控件,然后将此辅助控件隐藏即可。
- MFC窗口自动缩放
- SDL2缩放窗口in MFC
- MFC窗口自适应比例缩放
- MFC界面控件自动缩放
- MFC窗口自动激活
- 控件随窗口大小自动缩放
- MFC总结(2)---MFC窗口的缩放
- 仿MFC自动创建窗口
- 窗口自动布局MFC(转发)
- MFC----窗口的缩放及控件随拖动改变大小
- MFC下分割CSplitterWnd窗口等比例缩放
- MFC窗口和控件大小等比例缩放
- MFC 窗口自动填充 消息Onsize()
- MFC 窗口靠边自动隐藏功能
- MFC 窗口靠边自动隐藏 功能
- MDI窗口中实现自动缩放的背景图
- 图形自动随窗口缩放的java小程序
- TAB各页面的编写及窗口自动缩放
- HDU4009-Transfer water
- 2016最新PHP燕十八系统实战入门网站视频教程
- ORB特征
- 静态代理
- 基于jquery封装的一个slider插件
- MFC窗口自动缩放
- springmvc知识四------数据转换&数据格式化&数据校验
- 字符串反转方法
- 2016北京PHP39期 ThinkPHP Discuz Dedecms 微信开发视频教程
- 排序数组内的查找——二分查找
- jquery获取c:foreach出来的onclick事件
- 顺序表应用4:元素位置互换之逆置算法
- LeetCode之Reverse String
- [07]javascript函数