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

O método LinearGradientBrush::GetInterpolationColorCount obtém o número de cores atualmente definidas para serem interpoladas para esse pincel de gradiente linear.

Sintaxe

INT GetInterpolationColorCount();

Valor retornado

Tipo: INT

Esse método retorna o número de cores a serem interpoladas para esse pincel de gradiente linear. Se nenhuma cor tiver sido definida usando LinearGradientBrush::SetInterpolationColors ou se posições inválidas foram passadas para LinearGradientBrush::SetInterpolationColors, LinearGradientBrush::GetInterpolationColorCount retornará 0.

Comentários

Um pincel de gradiente linear simples tem duas cores: uma cor no limite inicial e uma cor no limite final. Quando você pinta com esse pincel, a cor muda gradualmente da cor inicial para a cor final à medida que você passa do limite inicial para o limite final. Você pode criar um gradiente mais complexo usando o método LinearGradientBrush::SetInterpolationColors para especificar uma matriz de cores e suas posições de combinação correspondentes a serem interpoladas para esse pincel de gradiente linear.

Você pode obter as cores e as posições de mesclagem atualmente definidas para um pincel de gradiente linear chamando seu método LinearGradientBrush::GetInterpolationColors . Antes de chamar o método LinearGradientBrush::GetInterpolationColors , você deve alocar dois buffers: um para manter a matriz de cores e outro para manter a matriz de posições de mesclagem. Você pode chamar o método LinearGradientBrush::GetInterpolationColorCount para determinar o tamanho necessário desses buffers. O tamanho do buffer de cores é o valor retornado de LinearGradientBrush::GetInterpolationColorCount multiplicado por sizeof(Color). O tamanho do buffer de posições de mesclagem é o valor de LinearGradientBrush::GetInterpolationColorCount multiplicado por sizeof( REAL).

Exemplos

O exemplo a seguir define as cores a serem interpoladas para esse pincel de gradiente linear como vermelho, azul e verde e define as posições de mesclagem como 0, 0,3 e 1. O código chama o método LinearGradientBrush::GetInterpolationColorCount de um objeto LinearGradientBrush para obter o número de cores atualmente definidas para serem interpoladas para o pincel. Em seguida, o código obtém as cores e suas posições. Em seguida, o código preenche um pequeno retângulo com cada cor.

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

   // Create a linear gradient brush, and set the colors to be interpolated.
   Color col[] = {
      Color(255, 255, 0, 0),   // red
      Color(255, 0, 0, 255),   // blue
      Color(255, 0, 255, 0)};  // green

   REAL pos[] = {
      0.0f,   // red at the left edge
      0.3f,   // blue at 30 percent of the distance from 
              // left edge to right edge
      1.0f};  // green at the right edge

   LinearGradientBrush linGrBrush(
      Point(0, 0), 
      Point(100, 0),
      Color(255, 0, 0, 0),         // black
      Color(255, 255, 255, 255));  // white

   linGrBrush.SetInterpolationColors(col, pos, 3);

   // Obtain information about the linear gradient brush.
   INT    colorCount = 0;
   Color* colors = NULL;
   REAL*  positions = NULL;

   // How many colors have been specified to be interpolated 
   // for this brush?
   colorCount = linGrBrush.GetInterpolationColorCount();

   // Allocate a buffer large enough to hold the set of colors.
   colors = new Color[colorCount];

   // Allocate a buffer to hold the relative positions of the colors.
   positions = REAL[colorCount];

   // Get the colors and their relative positions.
   linGrBrush.GetInterpolationColors(colors, positions, colorCount);

   // Fill a small rectangle with each of the colors.
   SolidBrush* pSolidBrush;
   for(INT j = 0; j < colorCount; j++)
   {
      pSolidBrush = new SolidBrush(colors[j]);
      myGraphics.FillRectangle(pSolidBrush, 15*j, 0, 10, 10);
      delete(pSolidBrush);
   }
}

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::GetInterpolationColors

LinearGradientBrush::SetInterpolationColors

Pathgradientbrush

Rect

Solidbrush