免费预览已结束,剩余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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 屏东县农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及完整答案详解一套
- 贵阳市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解1套
- 彭水苗族土家族自治县农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解(必刷)
- 鹰潭市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(考试直接用)
- 孝感市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(a卷)
- 漳州市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(能力提升)
- 2026年周口市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(模拟题)
- 璧山县农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)(含答案详解)
- 2026年邯郸市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(轻巧夺冠)
- 2025年广东省东莞市辅警协警笔试笔试真题(附答案)
- 2025至2030古建筑行业项目调研及市场前景预测评估报告
- 【《图书借阅系统的设计与实现》11000字(论文)】
- 2024-2025学年广东省广大附中九年级(上)11月联考物理试题及答案
- 光伏测量基础知识培训课件
- 2025年及未来5年中国海洋主题公园行业发展前景预测及投资战略研究报告
- 2025马鞍山博望区丹阳镇人民政府招聘派遣制专职交通劝导员12人考试参考试题及答案解析
- 2025年全国行政执法试题库含答案
- 2025-2030中国城镇燃气行业反恐怖防范标准实施效果评估报告
- 2025年生猪屠宰兽医卫生检疫人员考试题(附答案)
- 矿山压力测量仪器
- 煤矿岗位操作规程大全
评论
0/150
提交评论