PathGradientBrush::SetSurroundColors メソッド (gdipluspath.h)

PathGradientBrush::SetSurroundColors メソッドは、このパス グラデーション ブラシのサラウンド カラーを設定します。 囲み色は、ブラシの境界パス上の不連続点に対して指定された色です。

構文

Status SetSurroundColors(
  [in]      const Color *colors,
  [in, out] INT         *count
);

パラメーター

[in] colors

種類: const Color*

囲み色を指定する Color オブジェクトの配列へのポインター。

[in, out] count

種類: INT*

入力時に、colors 配列内の Color オブジェクトの数を指定する整数へのポインター。 メソッドが成功した場合、このパラメーターは出力時に、設定されたサラウンド カラーの数を受け取ります。 メソッドが失敗した場合、このパラメーターは値を受け取りません。

戻り値

種類: 状態

メソッドが成功した場合は、Status 列挙の要素である Ok を返します

メソッドが失敗した場合は、 Status 列挙体の他の要素のいずれかを返します。

解説

パス グラデーション ブラシには、境界パスと中心点があります。 中心点は単一の色に設定されますが、境界上の複数の点に異なる色を指定できます。 たとえば、中心の色に赤を指定し、境界上の個別の点に青、緑、黄色を指定するとします。 境界に沿って移動すると、色が徐々に青から緑から黄色に変わり、青色に戻ります。 境界上の任意の点から中心点に直線に沿って移動すると、その境界ポイントの色から赤に色が変わります。

次の例では、三角形のパスを定義する 3 つのポイントの配列に基づいて PathGradientBrush オブジェクトを作成します。 このコードでは、3 つの Color オブジェクトの配列も初期化されます。 PathGradientBrush::SetSurroundColors メソッドの呼び出しは、カラー配列内の各色をポイント配列内の対応する (同じインデックス) ポイントに関連付けます。 パス グラデーション ブラシのサラウンド カラーを設定した後、 Graphics::FillRectangle メソッドはパス グラデーション ブラシを使用して、三角形のパスを含む四角形を描画します。

レンダリングされた三角形の 1 つのエッジが、赤から緑に徐々に変化します。 次のエッジは緑から黒に徐々に変化し、3 番目のエッジは徐々に黒から赤に変わります。 このコードでは中心の色が設定されないため、中心の色の既定値は黒です。 境界パス上の任意の点 (三角形) から中心点に直線に沿って移動すると、その境界ポイントの色から黒に色が徐々に変化します。

VOID Example_SetSurColor(HDC hdc)
{
   Graphics graphics(hdc);

   Point pts[] = {
      Point(20, 20), 
      Point(100, 20), 
      Point(100, 100)};

   Color cols[] = {
      Color(255, 255, 0, 0),  // red
      Color(255, 0, 255, 0),  // green
      Color(255, 0, 0, 0)};   // black

   INT count = 3;
   PathGradientBrush pthGrBrush(pts, 3);
   pthGrBrush.SetSurroundColors(cols, &count);
   
   graphics.FillRectangle(&pthGrBrush, 0, 0, 200, 200);
}

要件

   
サポートされている最小のクライアント Windows XP、Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー gdipluspath.h (Gdiplus.h を含む)
Library Gdiplus.lib
[DLL] Gdiplus.dll

関連項目

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

Color

パス グラデーションの作成

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

PathGradientBrush

PathGradientBrush::GetSurroundColorCount

PathGradientBrush::GetSurroundColors