GetWindowRect() 和GetClientRect() 之间的区别

本文详细解释了在Windows应用编程中如何使用GetWindowRect()和GetClientRect()函数来获取窗口的矩形坐标,并介绍了ScreenToClient()函数的作用。特别地,阐述了这些函数在获取窗口在屏幕坐标系和客户区坐标系下的矩形时的不同之处,以及MoveWindow()函数在不同级别窗口使用时的区别。

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

 

GetWindowRect() 得到的是在屏幕坐标系下的RECT;(即以屏幕左上角为原点)

GetClientRect() 得到的是在客户区坐标系下的RECT; (即以所在窗口左上角为原点)

GetWindowRect()取的是整个窗口的矩形;

GetClientRect()取的仅是客户区的矩形,也就是说不包括标题栏,外框等;

第一个函数获得的是窗口在屏幕上的位置,得到的结果可能是这样CRect(10,10,240,240);

第二个函数和它不同,它只获得了客户区的大小,因此得到的结果总是这样CRect(0,0,width,height);

 

ScreenToClient() 就是把屏幕坐标系下的RECT坐标转换为客户区坐标系下的RECT坐标。

 

GetClientRect得到的是客户区的大小,也就是说这样得到的左上角永远是(0,0)

 

GetWindowRect 是窗口相对于整个屏幕的坐标,屏幕左上点为0,0

 

相互转化用ScreenToClient 或者 ClientToScreen

 

MoveWindow()用法说明:

For a top-level window, the position and dimensions are relative to the upper-left corner of the screen

对于top-level窗口,用屏幕坐标

For a child window, they are relative to the upper-left corner of the parent window's client area.

对于chile 窗口,用客户区域坐标

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值