窗口坐标获取 windows
2012-02-24 10:47
866 查看
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。
GetClientRect取得窗口客户区(不包括非客户区)在客户区坐标系下的RECT坐标,可以得到窗口的大小,而不能得到相对屏幕的位置,因为这个矩阵是在客户区坐标系下(相对于窗口客户区的左上角)的。
ClientToScreen把客户区坐标系下的RECT坐标转换为屏幕坐标系下的RECT坐标.
ScreenToClient把屏幕坐标系下的RECT坐标转换为客户区坐标系下的RECT坐标. 我们对同一个窗口先GetWindowRect取得一个RECT,再用ScreenToClient转换到客户坐标系。然后GetClientRect取得一个RECT,再用ClientToScreen转换到屏幕坐标系。显然,GetWindowRect取得的矩阵不小于GetClientRect取得的矩阵。因为前者包含了非客户区,而后包括了客户区。
对GetWindowRect取得的矩阵ScreenToClient后,矩阵的大小没有变小,(-3,-29)是窗口的左上角的坐标,相对窗口客户区左上角。对GetClientRect取得的矩阵ClientToScreen后,矩阵也没有变大,新得到的矩阵是窗口客户区在屏幕坐标系上的RECT。
相关文章推荐
- 通过Windows进程ID获取窗口句柄
- 在SDK中获取子窗口坐标的问题
- MFC获取窗口和客户区坐标分析
- 用powershell 获取windows窗口标题
- c#windowsfrom开发中获取鼠标坐标的方法
- 解决C#获取鼠标相对当前窗口坐标的实现方法
- Java获取窗口鼠标坐标以及键盘
- js获取各种浏览器窗口滚动坐标
- C#如何获取鼠标相对当前窗口的坐标(转自博客园)
- js获取窗口相对于屏幕左边和上边的位置坐标
- 获取dom到浏览器窗口坐上坐标
- Windows 7 C# OCX 无法获取“****”控件的窗口句柄,不支持无窗口的ActiveX控件的解决办法
- 用图说话——windows中的视口、窗口、逻辑坐标、设备坐标
- SWT获取windows系统窗口颜色
- [置顶] 基于要素(标题、父、类型、进程、控件id)获取windows窗口
- js中获取各种窗口的大小和鼠标坐标
- QT里,windows下获取窗口句柄的方法
- 解决在canvas获取的坐标和窗口的坐标一样的问题
- Python脚本获取Windows窗口标题,输出到命令行
- delphi2010获取鼠标指向窗口的位置及鼠标在窗口内的相对位置坐标