gpt4 book ai didi

c# - 光标位置函数返回错误值

转载 作者:可可西里 更新时间:2023-11-01 10:19:19 24 4
gpt4 key购买 nike

我有一个 2160 x 1440 的小屏幕,所以我在 Windows 中使用 150% 缩放比例。

使用 Cursor.Position 甚至 GetCursorPos/GetPhysicalCursorPos 我总能在屏幕上获得缩放后的坐标(例如 (2160, 1440) 变成 (1440, 960))。

我确信这是最近的更改,因为我之前在此屏幕上使用过 Cursor.Position 没有问题。

如何解释这种行为?为什么 GetCursorPosGetPhysicalCursorPos 返回相同的值,而它们在我的屏幕上应该不同?

最重要的是,使用 DPI 调整这些函数返回的值是获得正确值的唯一方法吗?

最佳答案

对于遇到此问题的人,我仍然无法解释为什么在使用 GetPhysicalCursorPosGetCursorPos 检索它们时物理坐标和逻辑坐标之间没有区别。 PhysicalToLogicalPoint 不起作用,因为它在 Windows 8.1 之后不再受支持。

但是,通过在其 app.manifest 中制作表单 dpiAware 似乎可以使所有程序保持一致。这基本上使所有坐标都符合逻辑,无需使用系统的 dpi 来计算它。例如,在运行时更改表单的宽度与在编辑器中更改时的更改量不同(多 1.5 倍)。另一个示例是使用 Graphics.CopyFromScreen,它希望由 me * 1.5 检索的坐标能够正常工作。更改 dpi 感知后,现在一切正常。

关于c# - 光标位置函数返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33237893/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com