



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
作者:一般情况下,我们新建的对话框,里面的“确定”和:取消”按钮,在对话框最大化得时候,不会一起变大的,而是保持原来的大小。而MFC默认不支持控件大小按比例缩放功能最简单的情况: 当我们点击最大化按钮的时候,对话框会最大化,但是控件“确定”和“取消”不会跟着变大。如果我们在对话框上面有多少控件,那么会很丑,而且很不实用,最大化本来就是想看的更清楚嘛。 我们可以采取下面的措施:对话框也是窗口,最大化是对窗口大小的改变,而在windows message handle中有个WM_SIZE的消息,该消息在窗口大小发生变化的时候会产生。那么我们可以根据这个消息,在窗口大小发生变化的时候,利用MoveWindow()函数来重新设置各个控件的大小。在网上查了一些资料,都不方便使用,还需要自己写好多代码。在这里我封装了一个简单的类,可以实现这个功能:用法是,1、在对话框类头文件中添加此类的对象CItemResize m_itemSize;2、在窗口初始化函数OnInitDialog中填写需要改变大小的对应控件的ID号:m_itemSize.AddItemRect(IDOK, this);m_itemSize.AddItemRect(IDC_LIST1, this);此处的ID替换成对话框上实际的ID。3、在OnSize函数中调用:m_itemSize.ResizeItem();功能实现完毕类代码代码如下:头文件:ItemResize.h#ifndef ITEMRESIZE_H#define ITMERESIZE_H/*/* 作者: */*/#include #include using namespace std;typedef struct _RESIZEINFOUINT nID;CWnd* pParent;float fLeft;float fRight;float fTop;float fBottom;RESIZEINFO;class CItemResizeCRect m_rectDlg;/在窗口创建时,添加需要自动按比例调整大小的控件ID。vector m_vResizeID;public:CItemResize(void);CItemResize(void);void AddItemRect(UINT nID, CWnd* pParent);void ResizeItem();#endifCPP文件:ItemResize.cpp/-/*/* 作者: */*/#include StdAfx.h#include ItemResize.hCItemResize:CItemResize(void)CItemResize:CItemResize(void)void CItemResize:AddItemRect( UINT nID, CWnd* pParent )RESIZEINFO rf = 0;rf.nID = nID;rf.pParent = pParent;CRect rect;pParent-GetClientRect(&m_rectDlg);CWnd *pItem = pParent-GetDlgItem(nID);ASSERT(pItem); /判断控件指针是否有效pItem-GetWindowRect(&rect);pParent-ScreenToClient(&rect);rf.fLeft = (float)(rect.left) / (float)(m_rectDlg.Width();rf.fRight = (float)(rect.right) / (float)(m_rectDlg.Width();rf.fTop = (float)(rect.top) / (float)(m_rectDlg.Height();rf.fBottom = (float)(rect.bottom) / (float)(m_rectDlg.Height();m_vResizeID.push_back(rf);void CItemResize:ResizeItem()for (UINT i=0; iGetClientRect(&m_rectDlg);CWnd *pItem = m_vResizeIDi.pParent-GetDlgItem(m_vResizeIDi.nID);if (pItem)CRect rect;rect.left = (int)(m_rectDlg.Width() * m_vResizeIDi.fLeft);rect.right = (int)(m_rectDlg.Width() * m_vResizeIDi.fRight);rect.top = (int)(m_rectDlg.Height() * m_vResi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 村民物品交换协议书范本
- 私人荒地转让合同协议书
- 离职合同终止协议书模板
- 门面出租协议协议书模板
- 鸡排店合伙人合同协议书
- 股权转让服务协议合同书
- 锅炉运行及维护合同范本
- 碳钢计量罐采购合同范本
- 肉店转让合同协议书模板
- 生意交易合同协议书模板
- 220KV升压站运行规程(改后)
- 肠系膜脉管系统肿瘤的诊断
- 非标设备制作安装工程施工方案
- 爆破工程技考核试卷
- GB/T 9766.6-2021轮胎气门嘴试验方法第6部分:气门芯试验方法
- 操场塑胶面层施工方案及工艺方法
- 粤信签小程序操作使用说明
- 医院季度院感监测信息及分析
- 福建省林业行政执法人员法律考试
- GB∕T 15329-2019 橡胶软管及软管组合件 油基或水基流体适用的织物增强液压型 规范
- 《组织机构代码证》word版
评论
0/150
提交评论