PathGradientBrush::SetTransform メソッド (gdipluspath.h)
PathGradientBrush::SetTransform メソッドは、このパス グラデーション ブラシの変換行列を設定します。
構文
Status SetTransform(
[in] const Matrix *matrix
);
パラメーター
[in] matrix
型: const Matrix*
変換行列を指定する Matrix オブジェクトへのポインター。
戻り値
種類: 状態
メソッドが成功した場合は、Status 列挙の要素である Ok を返します。
メソッドが失敗した場合は、 Status 列挙体の他の要素のいずれかを返します。
注釈
PathGradientBrush オブジェクトには、ブラシの境界パスとして機能する GraphicsPath オブジェクトがあります。 パス グラデーション ブラシを使用してペイントすると、境界パス内の領域のみが塗りつぶされます。 ブラシの変換行列が ID 以外の変換を表すに設定されている場合、レンダリング中にその行列に従って境界パスが変換され、変換されたパス内の領域のみが塗りつぶされます。
変換は、レンダリング中にのみ適用されます。 PathGradientBrush オブジェクトによって格納される境界パスは、PathGradientBrush::SetTransform メソッドによって変更されません。
例
次の例では、三角形のパスに基づいて PathGradientBrush オブジェクトを作成します。 Graphics::FillRectangle メソッドは、パス グラデーション ブラシを使用して、三角形のパスを含む四角形を描画します。 次に、複合変換 (回転、変換) を表す Matrix オブジェクトを作成し、その Matrix オブジェクトのアドレスを PathGradientBrush オブジェクトの PathGradientBrush::SetTransform メソッドに渡します。 このコードは FillRectangle を 2 回目呼び出し、変換されたパス グラデーション ブラシを使用して同じ四角形を描画します。
VOID Example_SetTransform(HDC hdc)
{
Graphics graphics(hdc);
Point pts[] = {
Point(0, 0),
Point(100, 0),
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);
// Fill an area with the path gradient brush (no transformation).
graphics.FillRectangle(&pthGrBrush, 0, 0, 200, 200);
// Set the transformation for the brush (rotate, then translate).
Matrix matrix(0.0f, 1.0f, -1.0f, 0.0f, 150.0f, 60.0f);
pthGrBrush.SetTransform(&matrix);
// Fill the same area with the transformed path gradient brush.
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 |
こちらもご覧ください
PathGradientBrush::GetTransform
PathGradientBrush::MultiplyTransform
PathGradientBrush::ResetTransform
PathGradientBrush::RotateTransform