GetWindowRect、GetClientRect、ScreenToClient与ClientToScreen
来源:互联网 发布:2016年天猫数据 编辑:程序博客网 时间:2024/05/20 17:10
http://blog.csdn.net/mao0514/article/details/13620681
GetWindowRect是取得窗口在屏幕坐标系下的RECT坐标(包括客户区和非客户区),这样可以得到窗口的大小和相对屏幕左上角(0,0)的位置。
GetClientRect取得窗口客户区(不包括非客户区)在客户区坐标系下的RECT坐标,可以得到窗口的大小,而不能得到相对屏幕的位置,因为这个矩阵是在客户区坐标系下(相对于窗口客户区的左上角)的。
用GetClientRect返回的RECT结构上左为零, 右下分别对应客户区的宽度和高度;
ScreenToClient把屏幕坐标系下的RECT坐标转换为客户区坐标系下的RECT坐标.
我们对同一个窗口先GetWindowRect取得一个RECT,再用ScreenToClient转换到客户坐标系。
然后GetClientRect取得一个RECT,再用ClientToScreen转换到屏幕坐标系。
显然,GetWindowRect取得的矩阵不小于GetClientRect取得的矩阵。因为前者包含了非客户区,而后包括了客户区。
对GetWindowRect取得的矩阵ScreenToClient后,矩阵的大小没有变小,left,top是窗口的左上角的坐标,相对窗口客户区左上角。
对GetClientRect取得的矩阵ClientToScreen后,矩阵的大小也没有变大,新得到的矩阵是窗口客户区在屏幕坐标系上的RECT。
---------------------------
例:
获取某控件相对于对话框的位置:
CRect rt;
GetDlgItem(IDC_CB)->GetWindowRect(rt); //取得在屏幕中的位置
ScreenToClient(rt); //转换到在对话框中的位置
rt.left和rt.top为该控件在对话框中的位置;
GetDlgItem(IDC_CB)->SetWindowPos(NULL,rt.left,rt.top,0,0,SWP_NOSIZE);//设置该位置(其实还是在原位置,因为rt.left和rt.top本来就是控件在对话框中的位置,如果要调整控件的位置,修改第二和第三个参数即可);
- GetWindowRect、GetClientRect、ScreenToClient与ClientToScreen
- GetWindowRect、GetClientRect、ScreenToClient与ClientToScreen
- GetWindowRect、GetClientRect、ScreenToClient与ClientToScreen
- GetWindowRect、GetClientRect、ClientToScreen、ScreenToClient
- ClientToScreen ScreenToClient GetWindowRect GetClientRect
- GetWindowRect,GetClientRect,ClientToScreen 和ScreenToClient
- GetClientRect , GetWindowRect ,ClientToScreen和ScreenToClient的疑问
- GetClientRect , GetWindowRect ,ClientToScreen和ScreenToClient的疑问
- VC++中的GetWindowRect,GetClientRect,ScreenToClient , ClientToScreen();
- GetWindowRect、GetClientRect、ScreenToClient、ClientToScreen的区别
- GetClientRect,GetWindowRect,ClientToScreen,ScreenToClient这四个函数的理解
- MFC的坐标转换GetClientRect/GetWindowRect/ClientToScreen/GetCursorPos/ScreenToClient
- MFC的坐标转换GetClientRect/GetWindowRect/ClientToScreen/GetCursorPos/ScreenToClient
- GetWindowRect GetWindowRect ScreenToClient ClientToScreen 区别
- GetWindowRect(), GetClientRect(), ScreenToClient()
- GetWindowRect ScreenToClient GetClientRect
- GetClientRect/GetWindowRect/ScreenToClient/ClientToWindow
- 关于ClientToScreen、ScreenToClient、GetClientRect和GetWindowRect四个函数之间的关系
- GetLastError的返回值的含义
- Java调用svnkit,检出指定版本的文件
- JVM原理
- 字符串数组的最长公共前缀
- JS打印指定区域内容
- GetWindowRect、GetClientRect、ScreenToClient与ClientToScreen
- GCD ios多线程 runloop
- DirectUI皮肤之旅
- 有关安全证书汇总及其科普
- C++程序设计实践学材系列(18)——1.4.1 用if语句实现判断
- 2013第一季度个人总结@20130407
- EM上的按钮是方框的问题
- java中代理的使用
- 黑马程序员 10 反射