Win32 API功能封装
+ -

GetDeviceCaps 获取当前系统DPI

2023-08-07 43 0

GetDeviceCaps 函数检索指定设备的设备特定信息。
GetDeviceCaps的参数为LOGPIXELSX,表示每个逻辑英寸沿屏幕宽度的像素数。


#include <cstdio>
#include <Windows.h>
#pragma comment(lib, "User32.lib")
#pragma comment(lib, "Gdi32.lib")

using namespace std;

double getDpi();

int main()
{
    const double dpi = getDpi();
    printf("%f", dpi);
}

/**
 * 获取Windows缩放等级,适配高DPI
 */
double getDpi()
{
    SetProcessDPIAware();
    // Get desktop dc
    auto&& desktopDc = GetDC(nullptr);
    // Get native resolution
    const int dpi = GetDeviceCaps(desktopDc, LOGPIXELSX);
    auto ret = 1 + (dpi - 96.0) / 24.0 * 0.25;
    if (ret < 1)
    {
        ret = 1;
    }
    ReleaseDC(nullptr, desktopDc);
    return ret;
}

输出:

1.250000

0 篇笔记 写笔记

COM 使用OleLoadPicture加载在MFC对话框中显示JPG图像
在C盘放一张名为aa.jpg,使用MFC运行程序,点击按钮1在对话框中显示JPG图像源代码如下:void CTTDlg::OnBnClickedButton1(){ CDC* pDC = GetDC(); CoInitialize(NULL); //COM 初始化 ......
GetDeviceCaps 获取当前系统DPI
GetDeviceCaps 函数检索指定设备的设备特定信息。GetDeviceCaps的参数为LOGPIXELSX,表示每个逻辑英寸沿屏幕宽度的像素数。#include #include #pragma comment(lib, ......
作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!