プラットフォーム SDK
GradientFill
長方形と三角形を塗りつぶします。
BOOL GradientFill(
HDC hdc,
CONST PTRIVERTEX pVertex,
DWORD dwNumVertex,
CONST PVOID pMesh,
DWORD dwNumMesh,
DWORD dwMode
);
パラメータ
- hdc
- 送信先のデバイスコンテキストのハンドルを指定します。
- pVertex
- 三角形の頂点を定義する、各 構造体の配列へのポインタを指定します。
- dwNumVertex
- 頂点の数を指定します。
- pMesh
- 三角形モードでは、 構造体の配列を指定します。長方形モードでは、 構造体の配列を指定します。
- dwNumMesh
- pMesh パラメータの要素 (三角形または長方形) 数を指定します。
- dwMode
- 塗りつぶしモードを指定します。このパラメータには、次のいずれかの値を指定します。
| 値 | 意味 |
| GRADIENT_FILL_RECT_H | 2 つの端点で長方形を表現します。長方形の左右の辺には定数カラー ( 構造体で指定される) を定義します。GDI は左辺から右辺までの領域に色を挿入して塗りつぶします。 |
| GRADIENT_FILL_RECT_V | 2 つの端点で長方形を表現します。長方形の上下の辺には定数カラー (TRIVERTEX 構造体で指定される) を定義します。GDI は上辺から下辺までの領域に色を挿入し塗りつぶします。 |
| GRADIENT_FILL_TRIANGLE | 構造体の配列が、個別の三角形を表す配列インデックスリストとともに GDI に渡されます。GDI は、三角形の頂点間で直線補間を行い、線内の領域を塗りつぶします。描画は、24 ビット/ピクセルモードまたは 32 ビット/ピクセルモードで直接行います。ディザリングは、16 ビット、8 ビット、4 ビット、および 1 ビット/ピクセルモードで行います。 |
戻り値
関数が成功すると、TRUE が返ります。
関数が失敗すると、FALSE が返ります。拡張エラー情報を取得するには、 関数を使います。
解説
三角形にスムーズシェードを追加するには、三角形の 3 つ端点を指定して GradientFill 関数を呼び出します。その結果、GDI は直線補間を行い、この三角形を塗りつぶします。
長方形にスムーズシェードを追加するには、その長方形で左上と右下にある頂点の座標を指定して、GradientFill 関数を呼び出します。長方形の描画には、2 種類のシェーディングモードが使えます(水平モードと垂直モード)。水平モードでは、長方形の左から右へ向かって影を付けます。垂直モードでは、長方形の上から下へ向かって影を付けます。
GradientFill 関数は、メッシュを使って描画オブジェクトの端点を指定します。すべての頂点は、pVertex 配列に格納されて GradientFill 関数に渡されます。pMesh パラメータでは、頂点をつないでオブジェクトを形成する方法を指定します。長方形を塗りつぶす場合、pMesh は 構造体の配列へのポインタとなります。各 GRADIENT_RECT 構造体は、pVertex 配列に格納された 2 つの頂点のインデックスを指定します。これらの頂点は、1 つの長方形で左上と右下の境界を作成します。
三角形を塗りつぶす場合、pMesh は 構造体の配列へのポインタとなります。各 GRADIENT_TRIANGLE 構造体は、pVertex 配列に格納された 3 つの頂点のインデックスを指定します。これらの頂点から 1 つの三角形が形成されます。
ハードウェアを簡単に高速化するには、このルーチンを使用して三角形の内側を完全にピクセルで塗りつぶす必要はありません。
詳細については、「スムーズシェーディング」 、「影を付けた三角形の描画」、および「影を付けた長方形の描画」を参照してください。
対応情報
Windows NT: バージョン 5.0 以降を使います。
Windows: サポートされていません。
Windows CE: サポートされていません。
ヘッダ : wingdi.h で宣言されています。
インポート ライブラリ : msimg32.dll にリソースとして含まれます。
参照
, , ,