GetWindowRect() 得到的是在屏幕坐标系下的RECT(即以屏幕左上角为原点)
GetClientRect() 得到的是在客户区坐标系下的RECT(即以所在窗口左上角为原点,去掉了标题栏计算,仅仅是个大小,返回值的左上角永远为0,0)
ScreenToClient() 就是把屏幕坐标系下的RECT坐标转换为客户区坐标系下的RECT坐标。
由于知道ID,如何通过其获取该窗口的位置?
CRect rect;
GetDlgItem(IDC_***)->GetWindowRect(rect);
SCreenToClient(rect);
我的总结:
如果需要获得窗体在屏幕上的位置,使用GetWindowRect
如果需要获得窗体的大小,使用GetClientRect