Поделиться через


Метод PathGradientBrush::SetTransform (gdipluspath.h)

Метод PathGradientBrush::SetTransform задает матрицу преобразования этой кисти градиента пути.

Синтаксис

Status SetTransform(
  [in] const Matrix *matrix
);

Параметры

[in] matrix

Тип: const Matrix*

Указатель на объект Matrix , указывающий матрицу преобразования.

Возвращаемое значение

Тип: Состояние

В случае успешного выполнения метода возвращается ОК, который является элементом перечисления Status .

Если метод завершается сбоем, он возвращает один из других элементов перечисления Status .

Комментарии

Объект PathGradientBrush имеет объект GraphicsPath , который служит в качестве пути границы для кисти. При рисовании кистью градиента пути заполняется только область внутри пути границы. Если матрица преобразования кисти представляет любое преобразование, отличное от удостоверения, то путь границы преобразуется в соответствии с этой матрицей во время отрисовки, и заполняется только область внутри преобразованного пути.

Преобразование применяется только во время отрисовки. Путь границы, хранящийся объектом PathGradientBrush , не изменяется методом PathGradientBrush::SetTransform .

Примеры

В следующем примере создается объект PathGradientBrush на основе треугольного пути. Метод Graphics::FillRectangle использует кисть градиента пути для рисования прямоугольника, содержащего треугольный путь. Затем код создает объект Matrix , представляющий составное преобразование (повернуть, а затем перевести), и передает адрес этого объекта Matrix методу PathGradientBrush::SetTransform объекта PathGradientBrush . Код вызывает FillRectangle во второй раз, чтобы закрасить тот же прямоугольник с помощью преобразованной кисти градиента пути.

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
Header gdipluspath.h (включая Gdiplus.h)
Библиотека Gdiplus.lib
DLL Gdiplus.dll

См. также раздел

Кисти и закрашенные фигуры

Создание градиента пути

Заполнение фигуры цветным градиентом

GraphicsPath

PathGradientBrush

PathGradientBrush::GetTransform

PathGradientBrush::MultiplyTransform

PathGradientBrush::ResetTransform

PathGradientBrush::RotateTransform

PathGradientBrush::ScaleTransform

PathGradientBrush::TranslateTransform