VC如何获取对话框中控件的坐标

VC如何获取对话框中控件的坐标

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

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

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

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

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

引自:http://blog.chinaunix.net/u/25372/showart_304363.html

所以要获得一个控件再对话框中的坐标的实现代码是:

CRect lpRec; 
 GetDlgItem(IDC_SLIDER_output)->GetWindowRect(&lpRec); 
 ScreenToClient(&lpRec);

详细可看http://blog.pfan.cn/miaowei/39345.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端那些事

过渡与动画 - 缓动效果&基于贝塞尔曲线的调速函数

难题 给过渡和动画加上缓动效果是一种常见的手法(比如具有回弹效果的过渡过程)是一种流行的表现手法,可以让界面显得更加生动和真实:在现实世界中,物体A点到B点往往...

34111
来自专栏机器之心

灵魂追问 | 教程那么多,你……看完了吗?

2889
来自专栏贾志刚-OpenCV学堂

OpenCV中泛洪填充算法解析与应用

泛洪填充(Flood Fill)很多时候国内的开发者称它为漫水填充,该算法在图形填充与着色应用程序比较常见,属于标配。在图像处理里对二值图像的Hole可以通过泛...

45210
来自专栏章鱼的慢慢技术路

OpenGL透明与混色效果

1896
来自专栏tkokof 的技术,小趣及杂念

Half-Pixel Offset 究竟是个什么鬼?

友情提示 Half-Pixel Offset 其实算是个过时话题,请依据个人情况谨慎了解 :)

882
来自专栏HTML5学堂

CSS3三维变形,其实很简单!

HTML5学堂:空间的变化一直是视觉感官上最吸引人的东西,而如果要把这些空间上的变化用代码在浏览器上实现出来,就需要深入的来了解CSS3的transform 3...

3987
来自专栏AI研习社

详解 Kaggle 房价预测竞赛优胜方案:用 Python 进行全面数据探索

AI 研习社按:Kaggle 的房价预测竞赛从 2016 年 8 月开始,到 2017 年 2 月结束。这段时间内,超过 2000 多人参与比赛,选手采用高级回...

5997
来自专栏python读书笔记

python 数据分析基础 day14-matplotlib模块概括条形图直方图折线图散点图箱线图

今天是读《pyhton数据分析基础》的第14天,今天读书笔记的内容为使用matplotlib模块绘制常用的统计图。 模块概括 matplotlib 是最基础的绘...

2814
来自专栏天天P图攻城狮

Android图像处理系列:OpenGL深度测试的应用

什么是深度测试? 深度测试是指检测从某个方向看过去时,两个点A和B谁在谁的前面,以便知道谁挡住了谁,被挡住的点一般不会进行绘制,以达到和真实世界一样的遮挡效...

1702
来自专栏进击的程序猿

Kaggle初探--房价预测案例之数据分析

本文数据来源kaggle的House Prices: Advanced Regression Techniques大赛。

1813

扫码关注云+社区