次の方法で共有


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

関連項目

ブラシと図形の塗りつぶし

Color

線形グラデーションの作成

色のグラデーションで図形を塗りつぶす

LinearGradientBrush

LinearGradientBrush::GetBlend

Rect