窗口坐标获取 VC
2011-04-28 23:00
218 查看
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。
相关文章推荐
- VC中获取窗口控件相对客户区的坐标
- VC 获取鼠标 点击时的屏幕坐标
- VC如何获取对话框中控件的坐标
- VC 获取控件在对话框中的坐标
- VC2008获取指定的窗口句柄
- VC 各种情况下的窗口句柄的获取
- VC由进程ID获取窗口句柄的各种方
- 转:VC:如何根据文件名来获取程序进程和窗口句柄的代码(转载)
- VC获取IE窗口的地址
- delphi2010获取鼠标指向窗口的位置及鼠标在窗口内的相对位置坐标
- VC获取窗口图片(截图)
- 获取相对于窗口(window)的坐标
- VC小技巧一:获取窗口句柄、控件ID、DC等
- C#如何获取鼠标相对当前窗口的坐标
- java中怎么获取一个窗口移动后的坐标
- VC++中屏幕坐标与窗口坐标的转换
- VC中获取窗口句柄的各种方法
- MFC对话框应用程序 如何在对话框窗口显示前获取窗口(控件)的屏幕坐标位置
- WPF 分辨率自适应,获取当前系统分辨率+窗口当前坐标
- VC 各种情况下的窗口句柄的获取