Skip to content

显示器DPI不一致时光标大小有问题 #1098

@xmcp

Description

@xmcp

Magpie version 程序版本

0.11.1

Windows version 系统版本

Windows 11 24H2 (26100.3194)

Related screenshot (optional) 相关截图(可选)

通过截图无法正确显示光标,所以下面用手机拍屏幕代替:

2025-03-16.21.38.10.mp4

Reproduction steps 复现步骤

  1. 弄两个DPI不同的显示器,我这里显示器1(是windows的主显示器,在下面)是200%缩放,显示器2(在上面)是175%缩放
  2. 确认magpie设置里“绘制光标”为打开,“缩放系数”为“无缩放”
  3. 在显示器2上打开一个记事本,观察到缩放后光标略微变大,变大比例约为200/175
  4. 把记事本拖到显示器1,观察到缩放后光标大小没有变化(这是预期情况)

问题原因大概是magpie使用的 GetIconInfo 会始终按主显示器DPI返回光标。

对此,StackOverflow 的建议是先用 GetDpiForMonitor 获取目标DPI,然后用 GetSystemMetricsForDpi 获取预期光标大小,最后用 LoadImage 渲染此大小的光标。

Log files 日志文件

magpie.log

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions