• 【物理分辨率】与【逻辑分辨率】


    之前一直没搞清楚 win 10 DPI: 200%,到底是哪个坐标受到影响。

    今天算是搞明白了。

    与鼠标相关的,比如点击,移动操作使用的相关坐标依据的是【逻辑分辨率】

    与屏幕取色、截图,找图相关的坐标,依据的是【物理分辨率】

    HWND hwnd_desktop = GetDesktopWindow();
    HDC hdc = GetWindowDC(hwnd_desktop);
    
    //【物理分辨率】:显示屏的最佳分辨率 ( win 10 上【显示分辨率】中设置的分辨率 )
    int w1 = GetDeviceCaps(hdc, DESKTOPHORZRES); 
    int h1 = GetDeviceCaps(hdc, DESKTOPVERTRES);
    
    ReleaseDC(hwnd_desktop, hdc); //释放
    
    printf("物理分辨率:%d x %d
    ", w1, h1);
    HWND hwnd_desktop = GetDesktopWindow();
    HDC hdc = GetWindowDC(hwnd_desktop);
    
    int w2 = GetDeviceCaps(hdc, HORZRES); //【逻辑分辨率】
    int h2 = GetDeviceCaps(hdc, VERTRES);
    
    ReleaseDC(hwnd_desktop, hdc); //释放
    
    printf("逻辑分辨率:%d x %d
    ", w2, h2);
    //【物理分辨率】与【逻辑分辨率】的缩放比例
    
    float dpiScaleX = w1 * 1.0 / w2;
    float dpiScaleY = h1 * 1.0 / h2;
    
    printf("scaleX:%f, scaleY:%f
    ", dpiScaleX, dpiScaleY);
  • 相关阅读:
    大道至简第一章和java理论学时第一节。感受。
    jQuery基础
    JavaScript对象及初始面向对象
    使用JavaScript操作DOM
    JavaScript操作BOM对象
    JavaScript基础
    实体之间的对应关系
    MySQL常用函数
    SQL Server中分离附加数据及生成SQL脚本
    C#中子类构造函数
  • 原文地址:https://www.cnblogs.com/personnel/p/11478932.html
Copyright © 2020-2023  润新知