視窗與視口

2021-07-04 18:51:34 字數 1007 閱讀 3050



幾個概念容易亂,先寫下來:

一般來說,客戶區左上角的點對應視口原點 (0,0),我理解他們為等同關係.裝置區(0,0)點就是視口原點(0,0)點,且不可改變.

視窗座標應用中使用邏輯座標,偶理解為視窗原點就是邏輯原點.等同關係.且可以改變.下面可能用上.(不要理解為整個視窗的左上角那個點)

從理解應用來說,無論setwindoworgex/setviewportorgex都沒有改變視口原點.它們只是改變了邏輯與裝置座標的對映關係.

大師說了,在真正的意義上,視埠和視窗僅是數學上的概念。是的,只是數學概念,可以隨意把邏輯(視窗)原點對映在螢幕的任何地方,當然輸出在客戶區外我們就看不見了.

1 如果用createwindow建立了選單,視口原點一般在選單左下方,工具欄上方.

2 如果用rebar建立選單,原點在rebar左上方.

3 如果用sdi,mdi,1,2中的結論不成立

4 裝置座標的原點一開始就是視窗原點和視口原點,可用setwindoworgex/setviewportorgex指定新的視窗原點.

5 不管對視窗和視埠原點作什麼改變,裝置點(0,0)始終是顯示區域的左上角。

6 精準定位相關函式:setwindowpos/getwindowrect/getclientrect/deferwindowpos/

begindeferwindowpos

/enddeferwindowpos/movewindow/screentoclient/dptolp

setviewportorgex是把新的裝置點(x,y)對映為邏輯原點(0,0).但裝置點(0,0)還是客戶區左上角.

setwindoworgex很有迷惑性,並不是視口原點移動到邏輯座標(x,y)處,而是表示此邏輯座標對應視口原點(0,0)

掌握一點,邏輯座標和裝置座標最終都要在顯示器上用畫素定位.這就是說只有裝置座標可以決定定位.在上面所說的一切地方,裝置原點是不變的,都是客戶區左上角.而邏輯原點可以對應任一裝置座標,所以可以通過邏輯座標原點的改變影響輸出.

end.

視窗與視口的區別

繪圖操作只能在客戶區中進行。除客戶區以外的部分都叫非客戶區 在 windows的作圖函式中,涉及邏輯座標到裝置座標的轉換。這裡提到的視窗 window 視口 viewport 是對應的概念。視口是與裝置相關 的乙個矩形區域,座標單位是與裝置相關的。視窗的座標是邏輯座標,與裝置無關。視窗座標的原點與視...

視口和視窗

對映方式指定了邏輯座標系的邏輯單位和座標軸正方向,座標原點沒有涉及。而且,在 自作主張的 兩種對映方式下,邏輯單位 座標軸正方向和座標原點都有待確定。視口 是基於裝置座標的,通常,視口與客戶區相同。點 0,0 是客戶區域的左上角。x 的值向右增加,y 的值向下增加。視窗 是基於邏輯座標的,邏輯座標可...

html響應式設計視口 視窗視口

關於視口 視口在響應式設計中是乙個非常重要的概念,在移動端瀏覽器中存在兩種視口 一是可見視口,即裝置大小 另外一種是視窗視口,即網頁寬度。裝置螢幕是414pxd 寬度,在瀏覽器中,414px的螢幕能夠顯示1200px 的內容。那麼,414px 就是可見視口的寬度,而1200px 就是視窗視口的寬度。...