Método PathGradientBrush::SetTransform (gdipluspath.h)

O método PathGradientBrush::SetTransform define a matriz de transformação desse pincel de gradiente de caminho.

Sintaxe

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

Parâmetros

[in] matrix

Tipo: const Matrix*

Ponteiro para um objeto Matrix que especifica a matriz de transformação.

Retornar valor

Tipo: Status

Se o método for bem-sucedido, ele retornará Ok, que é um elemento da enumeração Status .

Se o método falhar, ele retornará um dos outros elementos da enumeração Status .

Comentários

Um objeto PathGradientBrush tem um objeto GraphicsPath que serve como o caminho de limite para o pincel. Quando você pinta com um pincel de gradiente de caminho, somente a área dentro do caminho de limite é preenchida. Se a matriz de transformação do pincel estiver definida para representar qualquer transformação diferente da identidade, o caminho de limite será transformado de acordo com essa matriz durante a renderização e somente a área dentro do caminho transformado será preenchida.

A transformação se aplica somente durante a renderização. O caminho de limite armazenado pelo objeto PathGradientBrush não é alterado pelo método PathGradientBrush::SetTransform .

Exemplos

O exemplo a seguir cria um objeto PathGradientBrush com base em um caminho triangular. O método Graphics::FillRectangle usa o pincel de gradiente de caminho para pintar um retângulo que contém o caminho triangular. Em seguida, o código cria um objeto Matrix que representa uma transformação composta (girar, depois traduzir) e passa o endereço desse objeto Matrix para o método PathGradientBrush::SetTransform do objeto PathGradientBrush . O código chama FillRectangle uma segunda vez para pintar o mesmo retângulo usando o pincel de gradiente de caminho transformado.

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);  
}

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP, Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho gdipluspath.h (inclua Gdiplus.h)
Biblioteca Gdiplus.lib
DLL Gdiplus.dll

Confira também

Pincéis e formas preenchidas

Criando um Gradiente de Caminho

Preenchendo uma forma com um gradiente de cor

Graphicspath

Pathgradientbrush

PathGradientBrush::GetTransform

PathGradientBrush::MultiplyTransform

PathGradientBrush::ResetTransform

PathGradientBrush::RotateTransform

PathGradientBrush::ScaleTransform

PathGradientBrush::TranslateTransform