Compartilhar via


Método LinearGradientBrush::SetBlend (gdiplusbrush.h)

O método LinearGradientBrush::SetBlend define os fatores de mesclagem e as posições de mesclagem desse pincel de gradiente linear para criar uma mistura personalizada.

Sintaxe

Status SetBlend(
  [in] const REAL *blendFactors,
  [in] const REAL *blendPositions,
  [in] INT        count
);

Parâmetros

[in] blendFactors

Tipo: const REAL*

Ponteiro para uma matriz de números reais que especificam fatores de mesclagem. Cada número na matriz especifica uma porcentagem da cor final e deve estar no intervalo de 0,0 a 1,0.

[in] blendPositions

Tipo: const REAL*

Ponteiro para uma matriz de números reais que especificam posições de mesclagem. Cada número na matriz indica um percentual da distância entre o limite inicial e o limite final e está no intervalo de 0,0 a 1,0, em que 0,0 indica o limite inicial do gradiente e 1,0 indica o limite final. Deve haver pelo menos duas posições especificadas: a primeira posição, que é sempre 0,0f, e a última posição, que é sempre 1,0f. Caso contrário, o comportamento será indefinido. Uma posição de mesclagem entre 0,0 e 1,0 indica uma linha, paralela às linhas de limite, que é uma determinada fração da distância do limite inicial até o limite final. Por exemplo, uma posição de mesclagem de 0,7 indica a linha que é 70% da distância do limite inicial até o limite final. A cor é constante em linhas paralelas às linhas de limite.

[in] count

Tipo: INT

Inteiro que especifica o número de elementos na matriz blendFactors . Isso é o mesmo que o número de elementos na matriz blendPositions . O fator de mesclagem em um determinado índice de matriz corresponde à posição de mesclagem nesse mesmo índice de matriz.

Valor retornado

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 LinearGradientBrush tem dois limites. Quando você preenche uma área com um pincel de gradiente linear, a cor muda gradualmente à medida que você passa do limite inicial para o limite final. Por padrão, a cor está linearmente relacionada à distância, mas você pode personalizar a relação entre cor e distância chamando o método LinearGradientBrush::SetBlend .

Exemplos

O exemplo a seguir cria um pincel de gradiente linear, define uma mistura personalizada e usa o pincel para preencher um retângulo.

VOID Example_SetBlend(HDC hdc)
{
   Graphics myGraphics(hdc);

   REAL factors[4] = {0.0f, 0.4f, 0.6f, 1.0f};
   REAL positions[4] = {0.0f, 0.2f, 0.8f, 1.0f};
   Rect rect(0, 0, 100, 50);

   LinearGradientBrush linGrBrush(
      rect,
      Color(255, 255, 0, 0),  // red
      Color(255, 0, 0, 255),  // blue
      LinearGradientModeHorizontal);

   linGrBrush.SetBlend(factors, positions, 4);
   myGraphics.FillRectangle(&linGrBrush, rect);
}

Requisitos

   
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 gdiplusbrush.h (inclua Gdiplus.h)
Biblioteca Gdiplus.lib
DLL Gdiplus.dll

Confira também

Pincéis e formas preenchidas

Cor

Criando um gradiente linear

Preenchendo uma forma com um gradiente de cor

LinearGradientBrush

LinearGradientBrush::GetBlend

Rect