



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VC+控件自适应屏幕的方法 收藏 1.首先在初始化函数中,FormView在OnInitialUpdate(),Dialog在OnInitDialog()中初始化控件的大小。/开始初始化控件大小 m_IsInitialed = false; CRect m_ClientRect; this-GetClientRect(&m_ClientRect); CSize m_Forsize; m_Forsize = GetTotalSize();/在资源编辑器中定好大小后,程序运行时大小(不管最大化和最小化,该大小均为同一个值),客户区大于或等于显示的大小 double m_x = (double)m_ClientRect.Width() / m_Forsize.cx;/宽度方向发大倍数 double m_y = (double)m_ClientRect.Height() / m_Forsize.cy;/高度方向发大倍数 /调整控件的大小 CWnd *pWnd = NULL; pWnd = GetWindow(GW_CHILD); while(pWnd)/判断是否为空,因为对话框创建时会调用此函数,而当时控件还未创建 CRect rect; /获取控件变化前大小 pWnd-GetWindowRect(&rect); ScreenToClient(&rect);/将控件大小转换为在对话框中的区域坐标 m_ControlRect.insert(pair(pWnd-GetDlgCtrlID(), rect);/保存控件的初始大小,以便在OnSize函数中继续使用 int width = rect.Width(); int height = rect.Height(); WCHAR szBuf256; GetClassName(pWnd-m_hWnd,szBuf,256); if( _tcsicmp(szBuf,_T(Edit) = 0) /Edit只是位置变化,大小没有变 rect.top = m_y * rect.top; rect.left = m_x * rect.left; rect.bottom = rect.top + height; rect.right = rect.left + width; else /其它控件位置和大小均变化 rect.top = m_y * rect.top; rect.left = m_x * rect.left; rect.bottom = m_y * rect.bottom; rect.right = m_x * rect.right; pWnd-MoveWindow(&rect);/设置控件大小 pWnd = pWnd-GetWindow(GW_HWNDNEXT); /控件初始化结束 m_IsInitialed = true;2.如果界面在运行时大小可以改变,则在OnSize函数中加入如下代码/ TODO: 在此处添加消息处理程序代码CFormView:ShowScrollBar(SB_BOTH, false);/设置没有滚动条,视情况而定。 /在界面不是最小化并且已经初始化完毕if (!IsIconic() & m_IsInitialed)CSize m_Forsize;m_Forsize = GetTotalSize();double m_x = (double)cx / m_Forsize.cx;double m_y = (double)cy / m_Forsize.cy; /读取控件的初始大小map:iterator pos = m_ControlRect.begin();for (; pos != m_ControlRect.end(); +pos)CRect rect = pos-second;int width = rect.Width();int height = rect.Height();WCHAR szBuf256;GetClassName(GetDlgItem(pos-first)-m_hWnd,szBuf,256); if( _tcsicmp(szBuf,_T(Edit) = 0) rect.top = m_y * rect.top;rect.left = m_x * rect.left;rect.bottom = rect.top + height;rect.right = rect.left + width;elserect.top = m_y * rect.top;rect.left = m_x * rect.left;rect.bottom = m_y * rect.bottom;rect.righ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025金华武义县教育系统赴安徽师范大学招聘5人模拟试卷及答案详解(典优)
- 2025年咸阳秦都怡心学校招聘考前自测高频考点模拟试题及参考答案详解
- 2025年水发集团权属一级公司纪委副书记专项招聘考前自测高频考点模拟试题及答案详解(新)
- 2025年春季江苏南通市通州区部分事业单位(医疗卫生类岗位)招聘90人模拟试卷附答案详解(完整版)
- 安全培训教师开头语课件
- 小学安全培训教育心得课件
- 2025湖南省永州市双牌县引进急需紧缺人才(医卫岗25人)考前自测高频考点模拟试题含答案详解
- 2025福建三明大田县公开招聘紧缺急需专业教师7人模拟试卷及1套参考答案详解
- 小学安全体验培训感悟课件
- 2025贵州民族大学高层次人才引进85人考前自测高频考点模拟试题及参考答案详解
- 2024版2025秋贵州黔教版综合实践活动五年级上册全册教案教学设计
- 转作风重实干课件
- 村干部饮水安全培训总结课件
- 安全生产治本攻坚三年行动半年工作总结
- 单招备考科学方案
- 医美咨询培训课件
- 海船船员适任 评估规范(2024)轮机专业
- DB50-T 1463.2-2023 牛羊布鲁氏菌病防控技术规范 第2部分:人员防护
- NoSQL数据库应用与实践 课件 第1-6章 认识NoSQL - 增删改查
- 20世纪宋史研究:主要趋势、热点领域与未来展望
- 2025年度餐饮店知识产权保护与合伙人合同
评论
0/150
提交评论