Windows的三种坐标系:屏幕坐标系,非客户区坐标系,客户区坐标系
生活随笔
收集整理的這篇文章主要介紹了
Windows的三种坐标系:屏幕坐标系,非客户区坐标系,客户区坐标系
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?1. 屏幕坐標系:以屏幕的左上角為原點,如圖所示
GetWindowRect() 函數獲得的 RECT 就是以屏幕坐標系算的。
2. 非客戶區坐標系(窗口坐標系)
包括標題欄的部分。GetWindowDC 返回的設備環境就是基于此坐標系,一般只在 WM_NCPAINT 消息中使用。
3. 客戶區坐標系
不包括標題欄,坐標的原點在標題欄下的客戶區的左上角。
BeginPaint 函數返回的設備環境是基于客戶區坐標系的,只在 WM_PAINT 消息中使用,與 EndPaint 函數成對使用。
GetDC 函數返回的設備環境也是基于客戶區坐標系的,可以在其他消息中使用,與 ReleaseDC 函數成對使用。
GetClientRect 函數獲得的RECT 是基于客戶區坐標系的,RECT 的左上角坐標一定是(0,0)。
ScreenToClient 函數將 屏幕坐標系的坐標 --> 客戶區坐標系的坐標
ClientToScreen 函數將 客戶區坐標系的坐標 --> 屏幕坐標系的坐標
MoveWindow 函數,移動的是主窗口時傳入的 RECT 是基于屏幕坐標系的,若是移動的子窗口,基于的是父窗口的客戶區坐標坐標系。
總結
以上是生活随笔為你收集整理的Windows的三种坐标系:屏幕坐标系,非客户区坐标系,客户区坐标系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 六盘水干锅鹅掌广场店电话是多少?
- 下一篇: java信息管理系统总结_java实现科