Win32 API功能封装
+ -

GetDeviceCaps 获取当前系统DPI

2023-08-07 89 0

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

  1. #include <cstdio>
  2. #include <Windows.h>
  3. #pragma comment(lib, "User32.lib")
  4. #pragma comment(lib, "Gdi32.lib")
  5. using namespace std;
  6. double getDpi();
  7. int main()
  8. {
  9. const double dpi = getDpi();
  10. printf("%f", dpi);
  11. }
  12. /**
  13. * 获取Windows缩放等级,适配高DPI
  14. */
  15. double getDpi()
  16. {
  17. SetProcessDPIAware();
  18. // Get desktop dc
  19. auto&& desktopDc = GetDC(nullptr);
  20. // Get native resolution
  21. const int dpi = GetDeviceCaps(desktopDc, LOGPIXELSX);
  22. auto ret = 1 + (dpi - 96.0) / 24.0 * 0.25;
  23. if (ret < 1)
  24. {
  25. ret = 1;
  26. }
  27. ReleaseDC(nullptr, desktopDc);
  28. return ret;
  29. }

输出:

  1. 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驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

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

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