SetGraphicsMode 関数 (wingdi.h)

SetGraphicsMode 関数は、指定したデバイス コンテキストのグラフィックス モードを設定します。

構文

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

パラメーター

[in] hdc

デバイス コンテキストへのハンドル。

[in] iMode

グラフィックス モード。 このパラメーターには、次の値のいずれかを指定できます。

意味
GM_COMPATIBLE
16 ビット Windows と互換性のあるグラフィックス モードを設定します。 これは既定のモードです。 この値を指定した場合、アプリケーションは、ウィンドウとビューポートのエクステントと原点を設定する関数を呼び出すことによってのみ、ワールドからデバイスへの変換を変更できますが、 SetWorldTransform または ModifyWorldTransform を使用することはできません。これらの関数の呼び出しは失敗します。 ウィンドウとビューポートのエクステントと原点を設定する関数の例として 、SetViewportExtExSetWindowExtEx があります
GM_ADVANCED
ワールド変換を可能にする高度なグラフィックス モードを設定します。 アプリケーションが指定したデバイス コンテキストのワールド変換を設定または変更する場合は、この値を指定する必要があります。 このモードでは、テキスト出力を含むすべてのグラフィックスが、デバイス コンテキストで指定されたワールドからデバイスへの変換に完全に準拠します。

戻り値

関数が成功した場合、戻り値は古いグラフィックス モードです。

関数が失敗した場合は、0 を返します。

注釈

グラフィックスの出力は、グラフィックス モードによって異なる 3 つの領域があります。

  1. テキスト出力: GM_COMPATIBLE モードでは、TrueType (またはベクター フォント) のテキスト出力は、DC のワールドツーデバイス変換に関するラスター フォント テキスト出力とほぼ同じように動作します。 TrueType テキストは、残りのグラフィックスが x 軸または y 軸で反転される場合でも、常に左から右、右に書き込まれます。 TrueType (またはベクター フォント) テキストの高さのみが拡大縮小されます。 GM_COMPATIBLE モードで水平でないテキストを書き込む唯一の方法は、このデバイス コンテキストで選択されている論理フォントの 0 以外のエスケープメントと向きを指定することです。

    GM_ADVANCED モードでは、TrueType (またはベクター フォント) のテキスト出力は、デバイス コンテキストでのワールドツーデバイス変換に完全に準拠します。 ラスター フォントの変換機能は非常に限られています (一部の整数要素によるストレッチ)。 グラフィックス デバイス インターフェイス (GDI) は、非Trivial 変換用のラスター フォントで可能な限り最高の出力を生成しようとします。

  2. 四角形の除外: 既定のGM_COMPATIBLE グラフィックス モードが設定されている場合、四角形を描画するときに、システムによって下端と右端が除外されます。

    アプリケーションで右下の四角形を描画する場合は、GM_ADVANCED グラフィックス モードが必要です。

  3. 円弧描画: 既定のGM_COMPATIBLE グラフィックス モードが設定されている場合、GDI はデバイス空間で現在の円弧の方向を使用して円弧を描画します。 この規則では、円弧は x 軸または y 軸に沿った反転を必要とするページ間変換を考慮しません。

    GM_ADVANCED グラフィックス モードが設定されている場合、GDI は常に、論理空間の反時計回りの方向に円弧を描画します。 これは、GM_ADVANCED グラフィックス モードでは、円弧コントロール ポイントと円弧自体の両方が、デバイス コンテキストのワールドツーデバイス変換を完全に尊重するステートメントと同じです。

例については、「 座標空間と変換の使用」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー wingdi.h (Windows.h を含む)
Library Gdi32.lib
[DLL] Gdi32.dll

こちらもご覧ください

座標空間と変換関数

座標スペースと変換の概要

CreateDC

GetArcDirection

Getdc

GetGraphicsMode

ModifyWorldTransform

SetArcDirection

SetViewportExtEx

SetViewportExtent

SetWindowExtEx

SetWindowExtent

SetWorldTransform