LinearGradientBrush::SetBlendTriangularShape メソッド (gdiplusbrush.h)
LinearGradientBrush::SetBlendTriangularShape メソッドは、この線形グラデーション ブラシのブレンドシェイプを設定して、三角形の図形に基づいてカスタム ブレンドを作成します。
構文
Status SetBlendTriangularShape(
[in] REAL focus,
[in] REAL scale
);
パラメーター
[in] focus
種類: REAL
終了色の位置を示す実数。 この数値は境界線間の距離に対する割合であり、0.0 ~ 1.0 の範囲である必要があります。
[in] scale
種類: REAL
省略可能。 グラデーションの開始色を使用して、フォーカス位置でブレンドされるグラデーションの終了色の割合を指定する実数。 この数値は、0.0 ~ 1.0 の範囲である必要があります。 既定値は 1.0 で、終了色が完全な強度であることを指定します。
戻り値
種類: 状態
メソッドが成功した場合は、 Status 列挙体の要素である Ok を返します。
メソッドが失敗した場合は、 Status 列挙体の他の要素のいずれかを返します。
解説
既定では、開始境界から終了境界に移動すると、色は開始色 (線形グラデーション ブラシの開始境界の色) から終了色 (線形グラデーション ブラシの終了境界の色) に徐々に変化します。 LinearGradientBrush::SetBlendTriangularShape メソッドを使用して、開始色と終了色の配置とブレンドをカスタマイズできます。
LinearGradientBrush::SetBlendTriangularShape メソッドは、グラデーションの境界にある三角形の基点の極端な三角形の図形に従ってブレンドをカスタマイズします。 既定のブレンドでは、開始色は線形グラデーション ブラシの開始境界にあり、三角形のブレンドを適用すると、線形グラデーション ブラシの開始境界と終了境界に表示されます。 終了色の位置は、既定のブレンドでは終了境界にあり、境界の間のどこかにあり、フォーカスの値によって決定されます。 つまり、フォーカスは三角形のピークの位置を指定します。 たとえば、フォーカス値が 0.5 の場合、開始境界と終了境界の中間にピークが設定されます。 このピーク時に終了色が表示されます。
三角形のブレンドの終了色は、グラデーションの既定のブレンド開始色と既定のブレンド終了色の間の色域の割合です。 たとえば、線形グラデーション ブラシが開始色として赤で構成され、青が終了色として構築されるとします。 LinearGradientBrush::SetBlendTriangularShape がスケール値 0.3 で呼び出された場合、三角形のブレンドの終了色は、赤と青の間の 30% (70% 赤、30% 青) の色相になります。 スケール値が 1.0 の場合、終了色は 100% 青になります。
例
次の例では、線形グラデーション ブラシを作成し、三角形のブレンドを設定し、ブラシを使用して四角形を塗りつぶします。 さらに 2 回、コードは異なる値を持つ三角形のブレンドを設定し、毎回ブラシを使用して四角形を塗りつぶします。
VOID Example_SetBlendTri(HDC hdc)
{
Graphics myGraphics(hdc);
LinearGradientBrush linGrBrush(
Point(0, 0),
Point(500, 0),
Color(255, 255, 0, 0), // red
Color(255, 0, 0, 255)); // blue
linGrBrush.SetBlendTriangularShape(0.5f, 0.6f);
myGraphics.FillRectangle(&linGrBrush, 0, 0, 500, 50);
linGrBrush.SetBlendTriangularShape(0.5f, 0.8f);
myGraphics.FillRectangle(&linGrBrush, 0, 75, 500, 50);
linGrBrush.SetBlendTriangularShape(0.5f, 1.0f);
myGraphics.FillRectangle(&linGrBrush, 0, 150, 500, 50);
}
要件
サポートされている最小のクライアント | Windows XP、Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | gdiplusbrush.h (Gdiplus.h を含む) |
Library | Gdiplus.lib |
[DLL] | Gdiplus.dll |