windows拾取像素坐标_窗口坐标获取 windows

GetWindowRect是取得窗口在屏幕坐标系下的RECT坐标(包括客户区和非客户区),这样可以得到窗口的大小和相对屏幕左上角(0,0)的位置。

GetClientRect取得窗口客户区(不包括非客户区)在客户区坐标系下的RECT坐标,可以得到窗口的大小,而不能得到相对屏幕的位置,因为这个矩阵是在客户区坐标系下(相对于窗口客户区的左上角)的。

ClientToScreen把客户区坐标系下的RECT坐标转换为屏幕坐标系下的RECT坐标.

ScreenToClient把屏幕坐标系下的RECT坐标转换为客户区坐标系下的RECT坐标.     我们对同一个窗口先GetWindowRect取得一个RECT,再用ScreenToClient转换到客户坐标系。然后GetClientRect取得一个RECT,再用ClientToScreen转换到屏幕坐标系。显然,GetWindowRect取得的矩阵不小于GetClientRect取得的矩阵。因为前者包含了非客户区,而后包括了客户区。

对GetWindowRect取得的矩阵ScreenToClient后,矩阵的大小没有变小,(-3,-29)是窗口的左上角的坐标,相对窗口客户区左上角。对GetClientRect取得的矩阵ClientToScreen后,矩阵也没有变大,新得到的矩阵是窗口客户区在屏幕坐标系上的RECT。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 `pywinauto` 中,可以使用 `win32structures` 模块中的 `POINT` 和 `RECT` 类来进行坐标转换。 具体步骤如下: 1. 首先获取控件的句柄,可以使用 `pywinauto` 的 `find_*` 函数或者 `control_*` 函数来获取。 2. 使用 `win32gui` 模块中的 `GetWindowRect` 函数获取控件的坐标。 3. 如果需要将控件的坐标转换为相对于窗口的绝对坐标,则需要获取窗口坐标,并将控件的坐标窗口坐标相加。 以下是示例代码: ```python import win32gui from pywinauto import Desktop # 获取桌面对象 desktop = Desktop() # 获取计算器窗口句柄 cal_handle = desktop['计算器'].handle # 获取计算器窗口坐标 win_rect = win32gui.GetWindowRect(cal_handle) # 获取计算器按钮句柄 button_handle = desktop['计算器'].Button3.handle # 获取计算器按钮坐标 button_rect = win32gui.GetWindowRect(button_handle) # 转换为相对于窗口坐标 button_x = button_rect[0] - win_rect[0] button_y = button_rect[1] - win_rect[1] # 输出结果 print("计算器按钮相对于窗口坐标:({}, {})".format(button_x, button_y)) ``` 在以上示例代码中,我们首先使用 `Desktop` 类获取了桌面对象,然后通过 `handle` 属性获取了计算器窗口的句柄。接着,使用 `win32gui` 模块中的 `GetWindowRect` 函数获取了计算器窗口坐标,并使用同样的方式获取了计算器按钮的坐标。最后,将计算器按钮的坐标转换为相对于窗口坐标,并输出结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值