GetClientRect,ClientToScreen,GetWindowRect,我的误用

本文介绍了Windows编程中几种常用的坐标转换函数,包括GetClientRect、GetWindowRect、ClientToScreen及ScreenToClient等,并通过实例解释了这些函数的具体应用场景及其容易混淆的地方。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GetClientRect:
获取当前控件的客户区矩形(左上角:0,0)
GetWindowRect
获取基于窗口的矩形
ClientToScreen
把当前Point转化为基于屏幕的坐标
ScreenToClient
把基于屏幕的Point,转化为基于客户区的坐标(与调用这个函数的对象相关)
以前我以为控件调用GetClientRect,会获取基于客户端的矩形。这太二了吧。由于没有系统的整理,所以经常在绘图的时候出问题,然后调试一大遍,主要的原因就是没有弄明白这些函数的调用场景;
今天我又一次犯二,得到基于控件的坐标,然后我调用主对话框对象的ClientToScreen......我究竟是想干嘛呢?现在想想可笑,不过当时,感觉挺对的。。。然后产生了偏移,于是乎我用控件调用GetClientRect获取一个矩形(我以为它是基于客户区的)。我让这个坐标加上矩形的左上角坐标。结果还是那么多偏移。  为什么尼,  因为GetClientRect获取的矩形是基于自己的,是自己的大小。

反正就是自己不认真,没有细心,没有总结的缘故,一而再再而三的犯错误。

不过现在已经意识到了,我会慢慢改正的.......

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值