GetWindowRect,GetClientRect,ClientToScreen 和ScreenToClient

来源:互联网 发布:马蓉移民澳洲知乎 编辑:程序博客网 时间:2024/05/10 03:29
一个窗体分为两部分:系统区和客户区
象标题和菜单,边框之类的是系统区,由系统来控制,剩下的就是客户区。

GetWindowRect()    该函数返回指定窗口的边框矩形的尺寸。该尺寸以相对于屏幕坐标左上角的屏幕坐标给出。
   
GetClientRect()   获取窗口客户区的坐标。客户区坐标指定客户区的左上角和右下角。由于客户区坐标是相对窗口客户区的左上角而言的,因此左上角坐标为(0,0) 
窗口尺寸减去 客户区尺寸即是系统区。
  
ClientToScreen() 将指定点,或者矩形的用户坐标转换成屏幕坐标
ScreenToClient()该函数把屏幕上指定点或者矩形的屏幕坐标转换成客户坐标。

屏幕坐标是相对于屏幕左上角的,而窗口坐标是相对于窗口用户区左上角的。
VC下,有些函数使用窗口坐标,有些使用屏幕坐标,使用时要分清。
 
MoveWindow()  改变指定窗口的位置和大小。
对顶窗口来说,位置和大小取决于屏幕的左上角;对子窗口来说,位置和大小取决于父窗口客户区的左上角。
对于Owned窗口,位置和大小取决于屏幕左上角。
 
备注:Owned窗口:     一个Owned窗口总是在Z-Order顺序中,一般是在他的Owner窗口之前,Owned窗口的生命可以被他的Owner窗口控制,Owned窗口的显示并不局限于他的Owner窗口域,一个Owned窗口在建立后不能改变他的owner窗口。子窗口,弹出窗口,重叠窗口都可以做Owned窗口。  

原创粉丝点击