LinearGradientBrush::SetBlend メソッド (gdiplusbrush.h)
LinearGradientBrush::SetBlend メソッドは、この線形グラデーション ブラシのブレンド 係数とブレンド位置を設定して、カスタム ブレンドを作成します。
構文
Status SetBlend(
[in] const REAL *blendFactors,
[in] const REAL *blendPositions,
[in] INT count
);
パラメーター
[in] blendFactors
型: const REAL*
ブレンド係数を指定する実数の配列へのポインター。 配列内の各数値は、終了色の割合を指定し、0.0 から 1.0 の範囲にする必要があります。
[in] blendPositions
型: const REAL*
ブレンド位置を指定する実数の配列へのポインター。 配列内の各数値は、開始境界と終了境界の間の距離の割合を示し、0.0 から 1.0 までの範囲です。0.0 はグラデーションの開始境界を示し、1.0 は終了境界を示します。 少なくとも 2 つの位置が指定されている必要があります。最初の位置は常に 0.0f、最後の位置は常に 1.0f です。 それ以外の場合、動作は未定義です。 0.0 から 1.0 の間のブレンド位置は、境界線と平行な線を示します。これは、開始境界から終了境界までの距離の一定の割合です。 たとえば、ブレンド位置 0.7 は、開始境界から終了境界までの距離の 70% の線を示します。 境界線に平行な線の色は一定です。
[in] count
型: INT
blendFactors 配列内の要素の数を指定する整数。 これは blendPositions 配列内の要素の数と同じです。 指定された配列インデックスのブレンド係数は、同じ配列インデックスでのブレンド位置に対応します。
戻り値
種類: 状態
メソッドが成功した場合は、 Status 列挙の要素である Ok を返します。
メソッドが失敗した場合は、 Status 列挙体の他の要素のいずれかを返します。
解説
LinearGradientBrush オブジェクトには、2 つの境界があります。 線形グラデーション ブラシで領域を塗りつぶすと、開始境界から終了境界に移動すると、色が徐々に変化します。 既定では、色は距離に直線的に関連していますが、 LinearGradientBrush::SetBlend メソッドを呼び出すことで、色と距離の関係をカスタマイズできます。
例
次の例では、線形グラデーション ブラシを作成し、カスタム ブレンドを設定し、ブラシを使用して四角形を塗りつぶします。
VOID Example_SetBlend(HDC hdc)
{
Graphics myGraphics(hdc);
REAL factors[4] = {0.0f, 0.4f, 0.6f, 1.0f};
REAL positions[4] = {0.0f, 0.2f, 0.8f, 1.0f};
Rect rect(0, 0, 100, 50);
LinearGradientBrush linGrBrush(
rect,
Color(255, 255, 0, 0), // red
Color(255, 0, 0, 255), // blue
LinearGradientModeHorizontal);
linGrBrush.SetBlend(factors, positions, 4);
myGraphics.FillRectangle(&linGrBrush, rect);
}
要件
サポートされている最小のクライアント | Windows XP、Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | gdiplusbrush.h (Gdiplus.h を含む) |
Library | Gdiplus.lib |
[DLL] | Gdiplus.dll |