Windows的三种坐标系:屏幕坐标系,非客户区坐标系,客户区坐标系
?1. 屏幕坐標(biāo)系:以屏幕的左上角為原點,如圖所示
GetWindowRect() 函數(shù)獲得的 RECT 就是以屏幕坐標(biāo)系算的。
2. 非客戶區(qū)坐標(biāo)系(窗口坐標(biāo)系)
包括標(biāo)題欄的部分。GetWindowDC 返回的設(shè)備環(huán)境就是基于此坐標(biāo)系,一般只在 WM_NCPAINT 消息中使用。
3. 客戶區(qū)坐標(biāo)系
不包括標(biāo)題欄,坐標(biāo)的原點在標(biāo)題欄下的客戶區(qū)的左上角。
BeginPaint 函數(shù)返回的設(shè)備環(huán)境是基于客戶區(qū)坐標(biāo)系的,只在 WM_PAINT 消息中使用,與 EndPaint 函數(shù)成對使用。
GetDC 函數(shù)返回的設(shè)備環(huán)境也是基于客戶區(qū)坐標(biāo)系的,可以在其他消息中使用,與 ReleaseDC 函數(shù)成對使用。
GetClientRect 函數(shù)獲得的RECT 是基于客戶區(qū)坐標(biāo)系的,RECT 的左上角坐標(biāo)一定是(0,0)。
ScreenToClient 函數(shù)將 屏幕坐標(biāo)系的坐標(biāo) --> 客戶區(qū)坐標(biāo)系的坐標(biāo)
ClientToScreen 函數(shù)將 客戶區(qū)坐標(biāo)系的坐標(biāo) --> 屏幕坐標(biāo)系的坐標(biāo)
MoveWindow 函數(shù),移動的是主窗口時傳入的 RECT 是基于屏幕坐標(biāo)系的,若是移動的子窗口,基于的是父窗口的客戶區(qū)坐標(biāo)坐標(biāo)系。
總結(jié)
以上是生活随笔為你收集整理的Windows的三种坐标系:屏幕坐标系,非客户区坐标系,客户区坐标系的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 六盘水干锅鹅掌广场店电话是多少?
- 下一篇: 海螺煮硬了怎么办?