Share via


SetGraphicsMode 函式 (wingdi.h)

SetGraphicsMode 函式會設定指定裝置內容的圖形模式。

語法

int SetGraphicsMode(
  [in] HDC hdc,
  [in] int iMode
);

參數

[in] hdc

裝置內容的句柄。

[in] iMode

圖形模式。 此參數可以是下列其中一個值。

意義
GM_COMPATIBLE
設定與16位 Windows 相容的圖形模式。 這是預設模式。 如果指定這個值,應用程式只能藉由呼叫設定視窗和檢視區範圍和來源的函式來修改世界對裝置轉換,但不能使用 SetWorldTransformModifyWorldTransform;對這些函式的呼叫將會失敗。 設定視窗和檢視區範圍和原點的函式範例包括 SetViewportExtExSetWindowExtEx
GM_ADVANCED
設定允許世界轉換的進階圖形模式。 如果應用程式將設定或修改指定裝置內容的世界轉換,則必須指定此值。 在此模式中,所有圖形包括文字輸出,都完全符合裝置內容中指定的世界對裝置轉換。

傳回值

如果函式成功,則傳回值是舊的圖形模式。

如果此函式失敗,則傳回值為零。

備註

圖形輸出有三個區域會根據圖形模式而有所不同:

  1. 文字輸出:在GM_COMPATIBLE模式中,TrueType (或向量字型) 文字輸出的運作方式,與 DC 中世界對裝置轉換的點陣字型文字輸出相同。 TrueType 文字一律會從左至右和右向上寫入,即使圖形的其餘部分會在 x 或 y 軸上翻轉也一樣。 只會縮放 TrueType (或向量字型的高度) 文字。 在GM_COMPATIBLE模式中寫入非水準文字的唯一方式,就是為此裝置內容中選取的邏輯字型指定非零逸出點和方向。

    在GM_ADVANCED模式中,TrueType (或向量字型) 文字輸出完全符合裝置內容中的世界對裝置轉換。 點陣字型只有非常有限的轉換功能, (由某些整數因素) 延展。 圖形裝置介面 (GDI) 會嘗試產生最適合的輸出,並搭配點陣字型進行非嘗試轉換。

  2. 矩形排除:如果已設定預設GM_COMPATIBLE圖形模式,系統會在繪製矩形時排除底部和最右邊緣。

    如果應用程式想要繪製包含右下角的矩形,則需要GM_ADVANCED圖形模式。

  3. Arc 繪圖:如果已設定預設GM_COMPATIBLE圖形模式,GDI 會使用裝置空間中的目前弧形方向繪製弧線。 使用此慣例時,弧形不會遵守需要沿著 x 或 y 軸翻轉的頁面對裝置轉換。

    如果已設定GM_ADVANCED圖形模式,GDI 一律會在邏輯空間的反時針方向繪製弧線。 這相當於在GM_ADVANCED圖形模式中,弧形控制點和弧形本身完全遵守裝置內容世界對裝置轉換的語句。

範例

如需範例,請參閱 使用座標空間和轉換

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 wingdi.h (包含 Windows.h)
程式庫 Gdi32.lib
Dll Gdi32.dll

另請參閱

座標空間和轉換函式

座標空間和轉換概觀

CreateDC

GetArcDirection

GetDC

GetGraphicsMode

ModifyWorldTransform

SetArcDirection

SetViewportExtEx

SetViewportExtent

SetWindowExtEx

SetWindowExtent

SetWorldTransform