GradientFill 関数 (wingdi.h)
GradientFill 関数は、四角形と三角形の構造体を塗りつぶします。
構文
BOOL GradientFill(
[in] HDC hdc,
[in] PTRIVERTEX pVertex,
[in] ULONG nVertex,
[in] PVOID pMesh,
[in] ULONG nMesh,
[in] ULONG ulMode
);
パラメーター
[in] hdc
ターゲット デバイス コンテキストのハンドル。
[in] pVertex
それぞれが頂点を定義する TRIVERTEX 構造体の配列へのポインター。
[in] nVertex
pVertex 内の頂点の数。
[in] pMesh
三角形モード のGRADIENT_TRIANGLE 構造体の配列、または四角形モード のGRADIENT_RECT 構造体の配列。
[in] nMesh
pMesh 内の要素 (三角形または四角形) の数。
[in] ulMode
グラデーション塗りつぶしモード。 このパラメーターには、次の値のいずれかを指定できます。
値 | 意味 |
---|---|
|
このモードでは、2 つのエンドポイントで四角形が記述されます。 四角形は、左右の端の定数色 ( TRIVERTEX 構造体で指定) を持つよう定義されています。 GDI は、左から右端に色を補間し、内部を塗りつぶします。 |
|
このモードでは、2 つのエンドポイントで四角形が記述されます。 四角形は、上端と下端の定数色 ( TRIVERTEX 構造体で指定) を持つよう定義されています。 GDI は、上から下の端に色を補間し、内部を塗りつぶします。 |
|
このモードでは、 TRIVERTEX 構造体の配列が、個別の三角形を記述する配列インデックスの一覧と共に GDI に渡されます。 GDI は、三角形の頂点間で線形補間を実行し、内部を塗りつぶします。 描画は、24 および 32 bpp モードで直接行われます。 ディザリングは、16、8、4、1-bpp モードで実行されます。 |
戻り値
関数が成功した場合、戻り値は TRUE になります。
関数が失敗した場合、戻り値は FALSE になります。
注釈
三角形に滑らかな網かけを追加するには、3 つの三角形の端点を持つ GradientFill 関数を呼び出します。 GDI は直線的に補間し、三角形を塗りつぶします。 シェーディングされた三角形の描画出力を次に示します。
四角形に滑らかな網かけを追加するには、四角形の左上と右下の座標で GradientFill を呼び出します。 四角形を描画するときに使用される網かけモードは 2 つあります。 水平モードでは、四角形は左から右に網掛けされます。 垂直モードでは、四角形は上から下に網掛けされます。 2 つの網掛けされた四角形の描画出力を次に示します。1 つは水平モード、もう 1 つは垂直モードです。 GradientFill 関数は、メッシュ メソッドを使用して描画するオブジェクトの端点を指定します。 すべての頂点は、pVertex 配列の GradientFill に渡されます。 pMesh パラメーターは、これらの頂点を接続してオブジェクトを形成する方法を指定します。 四角形を塗りつぶすとき、 pMesh は GRADIENT_RECT 構造体の配列を指します。 各 GRADIENT_RECT 構造体は、 pVertex 配列内の 2 つの頂点のインデックスを指定します。 これら 2 つの頂点は、1 つの四角形の左上と右下の境界を形成します。三角形を塗りつぶす場合、 pMesh は GRADIENT_TRIANGLE 構造体の配列を指します。 各 GRADIENT_TRIANGLE 構造体は、 pVertex 配列内の 3 つの頂点のインデックスを指定します。 これら 3 つの頂点は、1 つの三角形を形成します。
ハードウェアアクセラレーションを簡略化するために、このルーチンは三角形の内部でピクセルパーフェクトである必要はありません。
GradientFill は TRIVERTEX 構造体の Alpha メンバーを使用しないことに注意してください。 透明度で GradientFill を使用するには、GradientFill を呼び出し、各頂点のアルファ チャネルに必要な値を指定して AlphaBlend を呼び出します。
詳細については、「スムーズ シェーディング」、「シェーディングされた三角形の描画」、「シェーディングされた四角形の描画」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | wingdi.h (Windows.h を含む) |
Library | Msimg32.lib |
[DLL] | Msimg32.dll |