SetViewportOrg
SetWindowOrg
注意設(shè)備坐標(biāo)和邏輯坐標(biāo)的區(qū)別:
1、設(shè)備坐標(biāo)(DeviceCoordinate)又稱為物理坐標(biāo)(PhysicalCoordinate),是指輸出設(shè)備上的坐標(biāo)。通常將屏幕上的設(shè)備坐標(biāo)稱為屏幕坐標(biāo)。設(shè)備坐標(biāo)用對(duì)象距離窗口左上角的水平距離和垂直距離來指定對(duì)象的位置,是以像素為單位來表示的,設(shè)備坐標(biāo)的X軸向右為正,Y軸向下為正,坐標(biāo)原點(diǎn)位于窗口的左上角。
2、邏輯坐標(biāo)(LogicalCoordinate)是系統(tǒng)用作記錄的坐標(biāo)。在缺省的模式(MM_TEXT)下,邏輯坐標(biāo)的方向和單位與設(shè)備坐標(biāo)的方向和單位相同,也是以像素為單位來表示的,X軸向右為正,Y軸向下為正,坐標(biāo)原點(diǎn)位于窗口的左上角。邏輯坐標(biāo)和設(shè)備坐標(biāo)即使在缺省模式下其數(shù)值也未必一致,除了在以下兩種情況下:
1. 窗口為非滾動(dòng)窗口
2. 窗口為滾動(dòng)窗口,但垂直滾動(dòng)條位于滾動(dòng)邊框的最上端,水平滾動(dòng)條位于最左端,但如果移動(dòng)了滾動(dòng)條這兩種坐標(biāo)就不一致了。
在VC中鼠標(biāo)坐標(biāo)的坐標(biāo)位置用設(shè)備坐標(biāo)表示,但所有GDI繪圖都用邏坐標(biāo)表示,所以用鼠標(biāo)繪圖時(shí),那么必須將設(shè)備坐標(biāo)轉(zhuǎn)換為邏輯坐標(biāo),可以使用CDC函數(shù)DPtoLP()將設(shè)備坐標(biāo)轉(zhuǎn)化為邏輯坐標(biāo),同樣可以用LPtoDP()將邏輯坐標(biāo)轉(zhuǎn)化為設(shè)備坐標(biāo)。
聯(lián)系客服