所謂設(shè)備坐標(biāo)與邏輯坐標(biāo)只是相對的概念。
比如點(diǎn)pt(1000,1000),如果你認(rèn)為他是
設(shè)備坐標(biāo),那么經(jīng)過下變換,他就變成邏輯
坐標(biāo):
dc.DPtoLP(&pt);
如果你認(rèn)為他是
邏輯坐標(biāo),那么經(jīng)過下變換,他就變成設(shè)備坐標(biāo):
dc.DPtoLP(&pt);
是設(shè)備坐標(biāo)還是邏輯坐標(biāo),與DC的影射模式(MapMode)
無關(guān),任何影射模式都有設(shè)備坐標(biāo)與邏輯坐標(biāo)。其中,設(shè)備坐標(biāo)
是統(tǒng)一的的,即都是指設(shè)備象素坐標(biāo)。
1.首先、設(shè)備坐標(biāo)指的是物理設(shè)備以象素點(diǎn)為單位。
邏輯坐標(biāo)除MM_TEXT外均指物理尺寸,如mm,inch等
2.數(shù)字本身沒有邏輯與設(shè)備之分
CRect r=CRect(0,0,50,30);
CSize size(100,80);
CPoint point(50,60);
孤立的看待這些點(diǎn)或坐標(biāo)是沒有意義的,他是邏輯還是設(shè)備坐標(biāo)
取決于編程著的主觀愿望,和上下文的意義。
3.DPtoLP指將象素點(diǎn)數(shù)坐標(biāo)轉(zhuǎn)換為在相應(yīng)設(shè)備上該數(shù)目的象素點(diǎn)
在該設(shè)備上實(shí)際物理長度(尺寸)坐標(biāo)。
LPtoDP指將相應(yīng)設(shè)備實(shí)際物理長度(尺寸)坐標(biāo)轉(zhuǎn)換為在相應(yīng)設(shè)備
上該物理長度(尺寸)所占用的象素點(diǎn)書目坐標(biāo)
一般dc所接受的參數(shù)是邏輯坐標(biāo),窗口函數(shù)都是接受設(shè)備坐標(biāo)。
在使用自己產(chǎn)生的dc之前要先調(diào)用OnPrepareDC,確保dc的原點(diǎn)與邏輯坐標(biāo)原點(diǎn)重合,因?yàn)閐c的函數(shù)都是使用的邏輯坐標(biāo)
posted on 2008-07-21 14:19
cpsprogramer 閱讀(3737)
評論(1) 編輯 收藏 引用 所屬分類:
VC++