博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GetWindowRect() 和 GetClientRect() 的区别
阅读量:6988 次
发布时间:2019-06-27

本文共 1745 字,大约阅读时间需要 5 分钟。

新建一个基于对话框的MFC的exe程序:

删除对话框的所有按钮,并添加一个test按钮,添加一个Static控件,ID为IDC_STATIC:

 

双击test按钮,在响应函数中添加以下代码:

View Code
1 void CTestMapDlg::OnBtnTest()  2 { 3     // TODO: Add your control notification handler code here 4     CRect rect; 5     CString str; 6      7     CWnd* pStatic = (CWnd*) GetDlgItem(IDC_STATIC); 8  9     pStatic->GetWindowRect(&rect);10     str.Format("In GetWindowRect: rect.left = %d, rect.top = %d, rect.right = %d, rect.bottom = %d",11             rect.left, rect.top, rect.right, rect.bottom);12     MessageBox(str);13 14     pStatic->ScreenToClient(&rect);15     str.Format("In GetWindowRect and after ScreenToClient: rect.left = %d, rect.top = %d, rect.right = %d, rect.bottom = %d",16             rect.left, rect.top, rect.right, rect.bottom);17     MessageBox(str);18 19     pStatic->GetClientRect(&rect);20     str.Format("In GetClientRect: rect.left = %d, rect.top = %d, rect.right = %d, rect.bottom = %d",21             rect.left, rect.top, rect.right, rect.bottom);         MessageBox(str);22 23     pStatic->ClientToScreen(&rect);24     str.Format("In  GetClientRect and after ClientToScreen: rect.left = %d, rect.top = %d, rect.right = %d, rect.bottom = %d",25             rect.left, rect.top, rect.right, rect.bottom);26     MessageBox(str);27 }

 

 

 

 

 

这个显示的是以屏幕左上角为原点的像素坐标。

说明GetWindowRect(&rect) 得到的矩形坐标是以屏幕左上角的点为原点的坐标。

 

这个显示的是以TestMap对话框的静态控件左上角为起点的像素坐标。

说明ScreenToClient(&rect) 能把以屏幕左上角的坐标转换成以调用该函数对象所关联的窗口(静态控件)的左上角的坐标。

 

这个显示的是以TestMap对话框的静态控件左上角为起点的像素坐标。

说明GetClientRect(&rect) 得到的坐标等于以

GetWindowRect(&rect)和 ScreenToClient(&rect) 的组合。

PS:仅对于那些没有边框的静态控件。

这个显示的是以屏幕左上角为原点的像素坐标。

说明GetWindowRect(&rect) 等于

GetClientRect(&rect) 和 ScreenToWindow(&rect) 的组合。

转载于:https://www.cnblogs.com/chenchenluo/archive/2012/10/08/2715586.html

你可能感兴趣的文章
Android RecyclerView利用Glide加载大量图片into(Target)导致OOM异常
查看>>
UGUI表情系统解决方案
查看>>
HTTP Health Checks
查看>>
为什么正态分布如此普遍
查看>>
jQuery事件
查看>>
BBS论坛(三十)
查看>>
轻松看懂Java字节码
查看>>
AE TIN的切割
查看>>
ASP.NET图片上传,删除
查看>>
Visual Studio 2010 创建的WCF服务 第一个应用
查看>>
2016第42周五
查看>>
centos7 取消自动锁屏
查看>>
在IDEA中代码自动提示第一个字母大小写必须匹配的解决
查看>>
面向接口编程的好处和优点
查看>>
架构师必看-架构之美第14章-两个系统的故事:设计之城(一)
查看>>
(原)InsightFace及其mxnet代码
查看>>
OpenCV学习:实现简单的图像叠加
查看>>
那个你身边悄悄离职的人去哪儿了?IT人才流动大盘点
查看>>
我们来翻翻元素样式的族谱-getComputedStyle
查看>>
Hessian HTTP POST访问时,Nginx返回411问题
查看>>