次の方法で共有


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

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

意味
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 になります

注釈

三角形に滑らかな網かけを追加するには、3 つの三角形の端点を持つ GradientFill 関数を呼び出します。 GDI は直線的に補間し、三角形を塗りつぶします。 シェーディングされた三角形の描画出力を次に示します。

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

三角形を塗りつぶす場合、 pMeshGRADIENT_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

こちらもご覧ください

ビットマップ関数

ビットマップの概要

EMRGRADIENTFILL

GRADIENT_RECT

GRADIENT_TRIANGLE

TRIVERTEX