MFC让控件随窗口大小而改变
转载自http://blog.csdn.net/chw1989/article/details/7488711
大小和位置都改变(亲测可行)
1.首先为窗体类添加CRect m_rect,该成员变量用来记录窗体的当前大小。
2.在类向导里面(Ctrl+W),为窗体添加消息WM_SIZE的响应函数OnSize();
注意if(nType==1) return;这一句必须添加,否则最小化恢复的时候会出错
void CPaperManagementDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
if(nType==) return;//最小化则什么都不做
// TODO: Add your message handler code here
CWnd *pWnd;
pWnd = GetDlgItem(IDC_STATIC);
ChangeSize(pWnd, cx, cy);
pWnd = GetDlgItem(IDC_FILE_TREE);
ChangeSize(pWnd, cx, cy);
pWnd = GetDlgItem(IDC_EDIT_NAME);
ChangeSize(pWnd, cx, cy);
pWnd = GetDlgItem(IDC_EDIT_REFERENCE);
ChangeSize(pWnd, cx, cy);
pWnd = GetDlgItem(IDC_EDIT_SUMMARY);
ChangeSize(pWnd, cx, cy);
pWnd = GetDlgItem(IDC_EDIT_REMARK);
ChangeSize(pWnd, cx, cy);
pWnd = GetDlgItem(IDC_BUTTON_UPDATE);
ChangeSize(pWnd, cx, cy);
pWnd = GetDlgItem(IDC_BUTTON_SAVE);
ChangeSize(pWnd, cx, cy);
pWnd = GetDlgItem(IDC_STATIC_1);
ChangeSize(pWnd, cx, cy);
pWnd = GetDlgItem(IDC_STATIC_2);
ChangeSize(pWnd, cx, cy);
pWnd = GetDlgItem(IDC_STATIC_3);
ChangeSize(pWnd, cx, cy);
pWnd = GetDlgItem(IDC_STATIC_4);
ChangeSize(pWnd, cx, cy);
GetClientRect(&m_rect);// 将变化后的对话框大小设为旧大小
}changesize是自己添加的函数
void CPaperManagementDlg::ChangeSize(CWnd *pWnd, int cx, int cy)
{
if(pWnd) //判断是否为空,因为对话框创建时会调用此函数,而当时控件还未创建
{
CRect rect; //获取控件变化前的大小
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);//将控件大小转换为在对话框中的区域坐标 // cx/m_rect.Width()为对话框在横向的变化比例
rect.left=rect.left*cx/m_rect.Width();//调整控件大小
rect.right=rect.right*cx/m_rect.Width();
rect.top=rect.top*cy/m_rect.Height();
rect.bottom=rect.bottom*cy/m_rect.Height();
pWnd->MoveWindow(rect);//设置控件大小
}
}
MFC让控件随窗口大小而改变的更多相关文章
- MFC控件随窗口大小变化原理及实现
本文主要针对MFC的dialog,实现控件随窗口大小变化. 原理:首先获取dialog的初始大小,当窗口发送变动时,调用OnSize事件和方法,计算缩放比例,然后对界面中的所有控件进行缩放和布局. 实 ...
- MFC TabCtrl 控件修改标签尺寸
注意:无论那种方法,都要先设置Tab控件的Style属性为fixed width. 第一种方法 MFC,tabcontrol控件改变标签大小 - CSDN博客 https://blog.csdn.ne ...
- MFC Spin 控件
一般应用: 设置属性: Auto Buddy(自动取关联控件为TAB顺序前一个)Set Buddy Interger(使控件设置关联控件数值,这个值可以是十进制或十六进制)Wrap(数值超过范围时循环 ...
- delphi ,1)控件根据窗口大小,一直居中显示 2)显示最大化最小化按钮控件
一.控件根据窗口大小,一直居中显示 1)onResize:当窗体尺寸改变时发生 例子:如何使控件随窗口的放大和缩小动态改变自己的大小,使控件“保存.返回”在窗口变大变小中随着变. 在Panel调用 p ...
- 发布MFC ActiveX控件并实现自动更新
一. 引言 上一篇我们讲了如何使用 VC 2005来开发 MFC ActiveX控件,我们开发 ActiveX控件最终目的是将 ActiveX控件发布出来并嵌入在 Web网页中,随着控件 ...
- 如何将 MFC ActiveX 控件标记为安全,脚本和初始化
MSDN原文.ActiveX控件标记安全(可以不仅仅是MFC ActiveX) 概要 默认情况下,MFC ActiveX 控件未标记为对脚本编写是安全的和对初始化是安全的.控制运行在 Internet ...
- vs2010开发activex(MFC)控件/ie插件(一)
原文:http://blog.csdn.net/yhhyhhyhhyhh/article/details/50782904 vs2010开发activex(MFC)控件: 第一步:生成ac ...
- DevExpress控件-GridControl根据条件改变单元格(Dev GridControl 单元格着色)
DevExpress控件-GridControl根据条件改变单元格颜色,如下图: 解决办法:可以参考:http://www.cnblogs.com/zeroone/p/4311191.html 第一步 ...
- 开发ActiveX控件调用另一个ActiveX系列1——开发一个MFC ActiveX控件
ActiveX开发的教程有很多,我也从中受益匪浅,例如以下这几篇: 基本教程:http://www.cnblogs.com/guenli/articles/1629915.html 注意事项:http ...
随机推荐
- Django初学笔记1.
1,安装python 和 Django , 参考网上教程(安装python,配置path, 安装django,配置path..) 2,查看django安装版本:cmd-->python--> ...
- C#拖动自己的定义标题栏(panel)以及实现窗体拖动关闭和最小化
//没有标题 this.FormBorderStyle = FormBorderStyle.None; //任务栏不显示 this.ShowInTaskbar = false; //实现拖动 1.在窗 ...
- git的安装已经连github
https://help.github.com/articles/generating-ssh-keys 1.安装git [plain] view plain copy sudo apt-get ...
- No1_8.类和对象2_Java学习笔记_对象
对象 /**** * *一.对象 *1.概念:对象是由类抽象出来的,对象可以操作类的属性和方法解决问题,了解对象的创建.操作和消亡很必要: *2.对象的创建: * a. new操作符创建:每实例化一个 ...
- freemarker中遍历list<map<String,String>>
<#list var as map><tr> <#list map?keys as itemKey> //关键点 <#if itemKey=" ...
- JAVA单元测试Junit
1.为什么要用Junit 做了很多项目,几乎没怎么用过Java的单元测试,是因为它没有用吗?显然不是,是自己的开发方式太不规范!对于大型的软件项目,单元测试不仅有效实用,还非常有必要!它能够测试每个方 ...
- 去掉Eclipse打开后定期弹出Usage Data Upload对话框
Eclipse 的 UDC 老定期蹦出来说要上传使用数据到 eclipse 官网服务器去除方法: 1.删除 eclipse/plugins 目录下以 org.eclipse.epp.usagedata ...
- C语言编程时常犯十八个错误
C语言的最大特点是:功能强.使用方便灵活.C编译的程序对语法检查并不象其它高级语言那么严格,这就给编程人员留下“灵活的余地”,但还是由于这个灵活给程序的调试带来了许多不便,尤其对初学C语言的人来说,经 ...
- 非索引列上的统计 <第二篇>
非索引列上的统计 有时候,可能在连接或过滤条件中的列上没有索引.即使对这种非索引列,如果查询优化器知道这些列的数据分布(统计),它也很可能做出最佳的选择. 除了索引上的统计,SQL Server可以在 ...
- bzoj1750 [Usaco2005 qua]Apple Catching
Description It is a little known fact that cows love apples. Farmer John has two apple trees (which ...