【问题标题】:HOWTO get normal size cursor on high DPI monitor?如何在高 DPI 显示器上获得正常大小的光标?
【发布时间】:2018-05-12 20:23:42
【问题描述】:

在连接了高 DPI 显示器的机器上,当我尝试获取光标(通过 GetIconInfo 或 GetIconInfoEx)时,我得到一个 HBITMAP,它是正常大小的 3 倍。

有没有办法让光标正常大小,这样我就不必自己调整大小了?

我自己调整大小时会得到工件

由于它被标记为重复问题 (Load cursor with certain resolution),让我解释一下为什么不是:

首先我没有加载任何光标。我使用的是系统的默认值。此外,当我向系统查询光标大小时,无论光标是在高 DPI 还是普通 DPI 显示器上,我总是得到 64 像素,相同的值。此外,无论我是否从控制面板将显示器的缩放因子设置为 100% 或更多,我都会得到相同的值。无论我是否有小、中或大光标(从控制面板鼠标易于访问),我得到的值也相同

【问题讨论】:

    标签: winapi dpi mouse-cursor hdpi


    【解决方案1】:

    您没有说明 正常大小 指的是什么,所以我假设它是硬件鼠标指针显示的光标大小(32×32,96 DPI 100%规模)。

    GetIconInfo(和光标本身)返回的位图尺寸受控制面板中指定的 DPI 比例的影响,这可能取决于整个系统相同的 Windows 版本,也可能因显示器而异。此外,位图大小还受您是否 application is marked as DPI-aware 的影响,否则 Windows 会为应用程序缩放所有内容。

    DPI scale Mouse cursor size DPI aware GetIconInfo bitmap
    100 % 32×32 - 32×32
    150 % 48×48 No 72×72
    150 % 48×48 Yes 48×48
    200 % 64×64 No 128×128
    200 % 64×64 Yes 64×64

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-21
      • 1970-01-01
      • 1970-01-01
      • 2012-04-28
      • 2014-01-07
      相关资源
      最近更新 更多