前提
在早几年前,PC的显示屏幕几乎是1920*1080、1680*1050这两种规格,对于PC的window界面开发人员来说,页面也都是按照屏幕大小进行设计的。但是这种根据屏幕大小进行界面设计的方式已经受到了很大限制!
近年来,显示屏的尺寸越来越多样化,PC开发的程序肯定不能再和之前一样了,那么该如何让PC开发的程序进行自适应屏幕呢?
功能实现
1:使用Qt自带的弹框功能。
优点:可以根据页面自动等比例拉伸控件。
缺点:对于new出来的控件,新手很不容易掌握,new出来的弹框不容易控制。
2:对现有的控件根据屏幕进行区域缩放。
这种方式是最快捷修改程序的。只需要计算出程序与屏幕的缩放系统,对每个控件的位置进行等比缩放,就能实现。很好的兼容以往程序。
今天主要是讲解如何使用第二种方式。
2.1:获取显示屏幕的大小
在main.cpp中获取当前显示屏的大小以及连接了几块显示屏幕
RECT SceenRect[2]{ (0,0,0,0), (0,0,0,0) };
BOOL CALLBACK Monitorenumproc(HMONITOR hMonitor, HDC hdcMonitor, LPRECT lprcMonitor, LPARAM dwData)
{
static BOOL first = FALSE; //重复检测标志
//保存显示器信息
MONITORINFO monitorinfo;
monitorinfo.cbSize = sizeof(MONITORINFO);
//获得显示器信息,将信息保存到monitorinfo中
GetMonitorInfo(hMonitor, &monito