GdiGradientFill 関数 (wingdi.h)

GdiGradientFill 関数は、四角形と三角形の構造体を塗りつぶします。

構文

BOOL GdiGradientFill(
  [in] HDC        hdc,
  [in] PTRIVERTEX pVertex,
  [in] ULONG      nVertex,
  [in] PVOID      pMesh,
  [in] ULONG      nCount,
  [in] ULONG      ulMode
);

パラメーター

[in] hdc

ターゲット デバイス コンテキストのハンドル。

[in] pVertex

それぞれが三角形の頂点を定義する TRIVERTEX 構造体の配列へのポインター。

[in] nVertex

pVertex 内の頂点の数。

[in] pMesh

三角形モードの GRADIENT_TRIANGLE 構造体の配列、または四角形モードの GRADIENT_RECT 構造体の配列。

[in] nCount

pMesh 内の要素 (三角形または四角形) の数。

[in] ulMode

グラデーション塗りつぶしモード。 このパラメーターには、次の値のいずれかを指定できます。

意味
GRADIENT_FILL_RECT_H
このモードでは、2 つのエンドポイントによって四角形が記述されます。 四角形は、左右の端に対して一定の色 ( TRIVERTEX 構造体で指定) を持つことが定義されています。 GDI は、左端から右端に色を補間し、内部を塗りつぶします。
GRADIENT_FILL_RECT_V
このモードでは、2 つのエンドポイントによって四角形が記述されます。 四角形は、上端と下端の定数色 ( TRIVERTEX 構造体で指定) を持つよう定義されています。 GDI は、上から下の端に色を補間し、内部を塗りつぶします。
GRADIENT_FILL_TRIANGLE
このモードでは、 TRIVERTEX 構造体の配列が、独立した三角形を記述する配列インデックスの一覧と共に GDI に渡されます。 GDI は、三角形の頂点間で線形補間を実行し、内部を塗りつぶします。 描画は、24 および 32-bpp モードで直接行われます。 ディザリングは、16、8、4、および 1-bpp モードで実行されます。

戻り値

関数が成功した場合、戻り値は TRUE になります

関数が失敗した場合、戻り値は FALSE になります

注釈

メモ この関数は GradientFill と同じです。
 
三角形に滑らかな網かけを追加するには、3 つの三角形の端点を使用して GdiGradientFill 関数を呼び出します。 GDI は、三角形を直線的に補間して塗りつぶします。 網かけの三角形の描画出力を次に示します。 上端のオレンジ色から下線のマゼンタまで塗りつぶされる三角形の図 四角形に滑らかな網かけを追加するには、四角形の左上と右下の座標で GdiGradientFill を呼び出します。 四角形を描画するときに使用されるシェーディング モードは 2 つあります。 水平モードでは、四角形は左から右に網掛けされます。 垂直モードでは、四角形は上から下に網掛けされます。 2 つの網掛けされた四角形 (1 つは水平モード、もう 1 つは垂直モード) の描画出力を次に示します。 左側の濃色から右側の明るい色に網掛けする四角形の図上の濃い色から下部の明るい色に網掛けする四角形の図GdiGradientFill 関数は、メッシュ メソッドを使用して描画するオブジェクトの端点を指定します。 すべての頂点は、pVertex 配列の GdiGradientFill に渡されます。 pMesh パラメーターは、これらの頂点を接続してオブジェクトを形成する方法を指定します。 四角形を塗りつぶすとき、 pMeshGRADIENT_RECT 構造体の配列を指します。 各 GRADIENT_RECT 構造体は、 pVertex 配列内の 2 つの頂点のインデックスを指定します。 これら 2 つの頂点は、1 つの四角形の左上と右下の境界を形成します。

三角形を塗りつぶす場合、 pMeshGRADIENT_TRIANGLE 構造体の配列を指します。 各 GRADIENT_TRIANGLE 構造体は、 pVertex 配列内の 3 つの頂点のインデックスを指定します。 これら 3 つの頂点は、1 つの三角形を形成します。

ハードウェアアクセラレーションを簡略化するために、このルーチンは三角形の内部でピクセル完璧である必要はありません。

GdiGradientFillTRIVERTEX 構造体の Alpha メンバーを使用しないことに注意してください。 透過性で GdiGradientFill を使用するには、 GdiGradientFill を呼び出し、各頂点のアルファ チャネルに必要な値を持つ GdiAlphaBlend を呼び出します。

詳細については、「 滑らかな網かけ」、「 網かけ付き三角形の描画」、「網けされた四角形の描画」を参照してください。

要件

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

こちらもご覧ください

ビットマップ関数

ビットマップの概要

EMRGRADIENTFILL

GRADIENT_RECT

GRADIENT_TRIANGLE

TRIVERTEX