在VC++中,关于窗口位置的调整,移动,拉伸时总少不了获取控件所在的位置坐标区域,
所以 GetWindowRect,GetClientRect和ScreenToClient必不可少:
GetWindowRect() 得到的是在屏幕坐标系下的RECT(即以屏幕左上角为原点)。
GetClientRect() 得到的是在客户区坐标系下的RECT(即以所在窗口左上角为原点,去掉了标题栏计算,仅仅是个大小,返回值的左上角永远为0,0)
ScreenToClient() 就是把屏幕坐标系下的RECT坐标转换为客户区坐标系下的RECT坐标。
ClientToScreen(); 客户区坐标系下的RECT坐标转化屏幕坐标系下的坐标
总结:
如果需要获得窗体在屏幕上的位置,使用GetWindowRect
如果需要获得窗体的大小,使用GetClientRect
第一个函数获得的是窗口在屏幕上的位置,得到的结果可能是这样CRect(10,10,240,240);
第二个函数和它不同,它只获得了客户区的大小,因此得到的结果总是这样CRect(0,0,width,height);
&是引用,只是传递的地址。不加就是把值复杂到新的地址去了。
加&与不加&可就完全不一样了。