邏輯座標和裝置座標的區別

2021-04-21 21:38:38 字數 636 閱讀 6239

windows

中,文件座標系稱作邏輯座標系,檢視座標系稱為裝置座標系。它們之間的關係如下圖所示:

圖7-11

文件座標和檢視座標

在檢視滾動後,如果使用者在檢視中單擊滑鼠,那麼會得到滑鼠位置的裝置(檢視)座標。在使用這個資料處理文件(比如畫點或畫線)時,需要把它轉化為文件座標。這是因為利用

mfc繪圖時,所有傳遞給

mfc作圖的座標都是邏輯座標。當呼叫

mfc繪圖函式繪圖時,

windows

自動將邏輯座標轉換成裝置座標,然後再繪圖。裝置上下文類

cdc提供了兩個成員函式

lptodp

和dptolp

完成邏輯座標和裝置座標之間的轉換工作。如其名字所示那樣,

lptodp

將邏輯座標轉換為裝置座標,

dptolp

將裝置座標轉換為邏輯座標。

對於檢視ondraw()

函式,則不需要作這樣的調整。這是因為,框架在呼叫

ondraw()

之前,已經自動呼叫了

onpreparedc()

成員函式完成裝置上下文座標調整工作了

普通的gdi函式和textout這樣的函式需要檢視座標作為引數。

MFC中邏輯座標與裝置座標的轉換關係

在windows中,邏輯座標又稱為視窗座標,裝置座標又稱為視口座標,它們之間的轉換關係如下 其中 xwindow,ywindow 為視窗座標,xwinorg,ywinorg 為視窗原點座標,xwinext,ywinext 為視窗範圍,xviewport,yviewport 為視口座標,xviewor...

邏輯座標(視窗) 裝置座標(視口)

視窗 依賴於邏輯座標,可以是畫素點 公釐或程式設計師想要的其他尺度。視口 依賴於裝置座標 畫素點 1.windows都用下面兩個公式將視窗座標轉換成視口座標 xviewport xwindow xwinorg xviewext xwinext xvieworg yviewport ywindow y...

列印中,裝置座標與邏輯座標轉換

1 在螢幕的cdc中繪圖時的座標轉換 系統邏輯座標 螢幕座標 pdc邏輯座標 我們呼叫getwindowrect獲得的是視窗的螢幕座標size。由於pdc預設的mapmode是mm text,所以我們可以直接使用size作為邏輯大小填充視窗。當然我們可以改變pdc的mapmode,這樣我們邏輯座標是...