当我们所写的程序发布后,会在不同的电脑上使用时因为不同的屏幕使用不同的分辨率,程序可能会超出屏幕范围。这时就需要我们进行处理。

只需要获取当前屏幕的分辨率,再将程序的宽和高设置为其分辨率的倍数即可。
但是这里需要注意的是,需要写一个resize函数使得控件大小随客户区大小改变。

在OninitDialog函数里加上:

 float x, y;float multiple;x = ::GetSystemMetrics(SM_CXSCREEN)*multiple;//获取分辨率宽高并且乘上倍数y = ::GetSystemMetrics(SM_CYSCREEN) *multiple;CRect rc(0, 0, x, y );MoveWindow(rc, true);resize();//控件随客户区改变大小

resize函数如下:

void Dlg::resize()
{float fsp[2];POINT Newp; //获取现在对话框的大小CRect recta;GetClientRect(&recta);     //取客户区大小  Newp.x = recta.right - recta.left;Newp.y = recta.bottom - recta.top;fsp[0] = (float)Newp.x / Old.x;fsp[1] = (float)Newp.y / Old.y;CRect Rect;int woc;CPoint OldTLPoint, TLPoint; //左上角CPoint OldBRPoint, BRPoint; //右下角HWND  hwndChild = ::GetWindow(m_hWnd, GW_CHILD);  //列出所有控件  while (hwndChild){woc = ::GetDlgCtrlID(hwndChild);//取得IDGetDlgItem(woc)->GetWindowRect(Rect);ScreenToClient(Rect);OldTLPoint = Rect.TopLeft();TLPoint.x = long(OldTLPoint.x*fsp[0]);TLPoint.y = long(OldTLPoint.y*fsp[1]);OldBRPoint = Rect.BottomRight();BRPoint.x = long(OldBRPoint.x *fsp[0]);BRPoint.y = long(OldBRPoint.y *fsp[1]);Rect.SetRect(TLPoint, BRPoint);GetDlgItem(woc)->MoveWindow(Rect, TRUE);hwndChild = ::GetWindow(hwndChild, GW_HWNDNEXT);}Old = Newp;}

MFC 程序大小及控件自适应不同的屏幕分辨率相关推荐

  1. MFC—界面设计(控件自适应,添加背景图,Static背景颜色设置)

    1.控件随着窗口自适应 首先在类视图里面添加OnSize()函数,然后添加一个ChangeSize()函数,头文件中添加如下 //控件自适应变量POINT old;CRect m_rect;void ...

  2. 基于PyQt5实现界面控件自适应大小

    基于PyQt5实现界面控件自适应大小 界面控件自适应大小,点击窗口放大后,界面控件大小随之发生变化. 实现效果 实例1 点击窗口放大后: 实例2

  3. 探究MFC之Dialog窗口最大化时控件自适应

    探究MFC之Dialog窗口最大化时控件自适应 MFC的Dialog程序,在窗口最大化时,如何所有让子窗口(控件)按比例放大? 启动VisualC++6.0,New->MFC AppWizard ...

  4. java组件自适应窗口大小_java swing 窗口和控件自适应大小

    本文记录java开发CS结构时怎么自适应屏幕大小以及控件跟随frame大小变化大小.位置和字体大小 需要注意: 1.代码必须放置在其构造方法中.如:我的frame1是我frame.java的名,则代码 ...

  5. C#Winform 实现控件自适应父容器大小

    C#Winform 实现控件自适应父容器大小 在日常开发中经常遇到控件不能随着父容器大小的改变而且自动改变控件的所在位置和大小.以下是实现的代码 /// <summary>/// 根据父容 ...

  6. QT 布局,控件自适应大小 自动缩放 自动布局

    有时,我们需要我们的布局或控件,随窗口变化而变化:这时就要求我们注意一下: 1. 先来说简单的布局控件自适应 首先拖动两个 verticalLayout 放到窗口: 右击空白处:右键菜单 ->布 ...

  7. MFC中动态创建控件以及事件响应实现方法

    本文实例讲述了MFC中动态创建控件以及事件响应实现方法,分享给大家供大家参考.具体实现方法如下: 动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建动态 ...

  8. MFC中动态创建控件以及添加事件响应

    本文实例讲述了MFC中动态创建控件以及事件响应实现方法,分享给大家供大家参考.具体实现方法如下: 动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建动态 ...

  9. aardio控件字体大小随控件缩放

    aardio窗体上的控件可以在属性里设置自适应大小,或者固定边距.九宫格布局等方法,这样控件的大小就会随着窗体大小变化而自动缩放调整了. 那么就有人问,控件里面的字体大小呢,也会随着缩放调整吗?怎么设 ...

最新文章

  1. 使用git上传代码到github
  2. Centos7上安装 elasticsearch-6.2.2及相关插件
  3. wordpress连不上mysql_WordPress 无法连接 Mysql8 的问题
  4. Java Graphics2D类的绘图方法
  5. 卧槽!手机上竟然也能用Win10...
  6. 【STM32】GPIO概述
  7. 右键我的电脑,没有属性,解决方案
  8. 世界上有条件JavaScript是什么?
  9. mysql 建立索引更慢_如何运用“提前发布,经常发布”来建立更好的品牌
  10. Java-网络编程总结(转载)
  11. 跨平台APP----对Cordova,APPCan,DCloud,APICloud四大平台的分析
  12. 计算机一级ftp协议传输,文件传输协议(FTP)必将消亡
  13. exist name
  14. itext 生成 PDF(一)
  15. OMNeT 例程 Tictoc18 学习笔记
  16. 「罗马人的故事 III 胜者的迷思」读后感 Part1,格拉古兄弟
  17. 分布式系统高可用实战之限流器(Go 版本实现)
  18. 白蛋白纳米粒|莫西沙星小鼠血清白蛋白MSA纳米粒|利多卡因大鼠血清白蛋白RSA纳米粒
  19. 28岁转行web前端,参加成都前端web培训可行吗?
  20. 生成Base64编码格式的二维码图片(添加url地址图片logo)

热门文章

  1. 论 Java 中的内存分配
  2. linux 远程脚本批量 scopy文件
  3. Jquery Cookbook摘要之使用上下文参数
  4. 如何让我的网站(独立网站或者blog)被百度收录?
  5. WCF Ria Service“操作失败,指定的命名链接在配置中找不到”错误解决方法
  6. [图形图像]一次光线追踪的尝试
  7. PHP语言中global和$GLOBALS[]的分析(转)
  8. 艾伟:为WPF项目创建单元测试
  9. 轻松实现Web数据库的安全
  10. 常用的 JavaScript 库 CDN 加速服务