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 ...
随机推荐
- 7 Hbase put方式插入数据
package com.hikvision.hbase.vertify.test; import org.apache.hadoop.conf.Configuration; import org.ap ...
- UVA442 栈
C - Matrix Chain Multiplication Crawling in process... Crawling failed Time Limit:3000MS Memory ...
- 在ubuntu 12.04 中配置java环境(安装jdk, tomcat, maven, eclipse)
1. 安装jdk 1.7 在ubuntu( /usr/lib/jvm/java-7-openjdk-amd64 )中默认有安装jdk 1.7 如果没有 可下载 : http://www.oracle. ...
- HTML布局总结
网页的三大元素结构(内容html标签)+表现(布局CSS)+行为(js) CSS选择器1.标记选择器2.类别选择器(.red)3.ID选择器(#name)4.复合选择器(交集选择器 标记选择器+类别 ...
- AngularJS中的控制器示例_2
<!doctype html> <html ng-app="myApp"> <head> <script src="C:\\Us ...
- Escape character is '^]'. Connection closed by foreign host.
今天在用易汇金的接口回调时候,老是回调不到我的机器上面.我的ip通过公网映射,按说是可以访问到我的ip,思考是什么问题. 1.防火墙关闭,不行 2.防火墙开启,但是把自己的端口号改为可以访问(参考:h ...
- Is there a complete List of JVM exit codes
Argument passed to System.exit(x) -> becomes the JVM exit code. Exit code 0 is used to indicate n ...
- 《Programming WPF》翻译 第6章 2.资源与样式
原文:<Programming WPF>翻译 第6章 2.资源与样式 WPF的样式机制以来于资源体系来定位样式.正如你在第5章看到的,样式在元素的资源片段中定义,而且样式通过其名字被引用, ...
- Pawn Brotherhood
Pawn Brotherhood 1 alpha_table = "abcdefgh" 2 3 def safe_pawns(pawns): 4 safe_count = 0 5 ...
- 【转】如何测试CTS4.0 -- 不错
原文网址:http://blog.csdn.net/subsist/article/details/7209341/ CTS4.0测试步骤 V1.2 (更新到CTS4.0 R3) 第一:平台准 ...