GetClientRect()既然获得的左上角都是(0,0),那获得的不就是对象的Rect大小吗?
新建的项目为基于对话框模式。对话框上有个Button,叫m_bt
想获得此Button在Dlg上的坐标,于是想用 m_bt.GetClientRect(&rect),但是结果不对。
查MSDN:用GetClientRect()获得的坐上角一定是(0,0)。
那也就是说,此函数获得的就是Button的大小,并不是以对话框为Client的坐标。
那么,这个函数就应该叫GetWndRect(),为什么叫GetClientRect()?和Client一点都没有关系,因为它把Button当做了Client
原本以为用GetClientRect(),可以等价于下面两句话:
GetWindowRect(&rect);
ScreenToClient(&rect);
但实际操作过,不等价。
只有通过
GetWindowRect(&rect);
ScreenToClient(&rect);
才能正确得到结果。
请指正。