gpt4 book ai didi

winapi - GetWindowRect 在 Windows 10 中有偏移

转载 作者:行者123 更新时间:2023-12-03 21:31:24 28 4
gpt4 key购买 nike

我在我的程序中使用 GetWindowRect 来获取桌面上窗口的坐标。这在我在这里进行测试的十几台 PC(XP-W8.1)上运行良好,但在我的一台带触摸屏的 W10 PC 上却不行:坐标与左上角有偏移。我搜索了 Windows 10 中的错误和与监视器相关的东西,但找不到任何东西,但这似乎是一个常用的功能,而且问题很容易重现。

有人有任何线索吗?

代码,简化:

hwnd = FindWindow(NULL, windowname);
if (hwnd) {
TRect r;
GetWindowRect(hwnd, &r);
}
HWND hdt = GetDesktopWindow();
HDC dcdt = GetWindowDC(hdt);
// bitblt canvas to get window (won't work for high DPI setting)

最佳答案

您的程序不支持 DPI,因此受 DPI 虚拟化的影响。这意味着 GetWindowRect 等函数返回的坐标将是虚拟坐标,因此与真实的屏幕坐标不匹配。

关于winapi - GetWindowRect 在 Windows 10 中有偏移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30323426/

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