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

 

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 窗口,用客户区域坐标

 

你可能感兴趣的:(GetWindowRect() 和GetClientRect() 之间的区别)