1. 程式人生 > >GDI和GDI+程式設計例項剖析

GDI和GDI+程式設計例項剖析

  公式中的<Xvorg, Yvorg>是裝置空間中視口的原點,而< Xworg, Yworg >是邏輯空間中視窗的原點。 Xwext/Xvext和Ywext/Yvext分別是視窗與視口水平和垂直範圍的比例。   因此,經過程式中的dc.SetWindowOrg (0,0) 和dc.SetViewportOrg (0,rect.bottom/2)語句我們設定了視口和視窗的原點;而經過程式中的dc.SetWindowExt (rect.right,rect.bottom) 和dc.SetViewportExt (rect.right,-rect.bottom) 語句我們設定了視口和視窗的範圍。由於視口和視窗的縱座標方向相反,設定視口的垂直範圍為負值。這樣我們得到了一個邏輯座標原點為客戶區水平方向最左邊和垂直方向居中的座標系,我們在這個座標系上直接繪製正旋曲線,不需要再理睬Windows對話方塊客戶區座標了。   void CGdiexampleDlg::OnGdiDrawLine()函式中未指定邏輯裝置和物理裝置的對映模式,則為預設的MM_TEXT。在這種模式下,一個邏輯單位對應於一個畫素點。對映模式是GDI中的一個重要概念,其它的對映模式還有MM_LOENGLlSH、MM_HIENGLISH、MM_LOMETRIC和MM_HIMETRIC等。我們可以通過如下語句指定對映模式為MM_TEXT: