win32gui.GetWindowRect 获取的坐标不准
时间: 2024-02-06 16:04:12 浏览: 224
win32实现局部刷新控件代码.zip
5星 · 资源好评率100%
有可能是因为GetWindowRect函数获取的是窗口相对于屏幕的坐标,而不是窗口相对于父窗口的坐标。如果窗口有父窗口,那么获取到的坐标是相对于屏幕的坐标,需要通过ScreenToClient函数将其转换为相对于父窗口的坐标。以下是将窗口坐标转换为客户端坐标的示例代码:
```python
import win32gui
import win32api
hwnd = win32gui.FindWindow(None, "Window Name")
left, top, right, bottom = win32gui.GetWindowRect(hwnd)
client_x, client_y = win32gui.ScreenToClient(hwnd, (left, top))
width = right - left
height = bottom - top
print("Client coordinates: ", client_x, client_y)
print("Width: ", width)
print("Height: ", height)
```
注意要将hwnd参数替换为你想要获取坐标的窗口的句柄。如果你仍然发现获取的坐标不准确,可能是因为窗口本身的坐标信息不准确导致的,你可以尝试使用其他的窗口坐标获取函数来进行验证。
阅读全文