Compartir a través de


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

El método LinearGradientBrush::GetInterpolationColorCount obtiene el número de colores establecidos actualmente para interpolarse para este pincel de degradado lineal.

Sintaxis

INT GetInterpolationColorCount();

Valor devuelto

Tipo: INT

Este método devuelve el número de colores que se van a interpolar para este pincel de degradado lineal. Si no se ha establecido ningún color mediante LinearGradientBrush::SetInterpolationColors, o si se han pasado posiciones no válidas a LinearGradientBrush::SetInterpolationColors, LinearGradientBrush::GetInterpolationColorCount devuelve 0.

Comentarios

Un pincel de degradado lineal simple tiene dos colores: un color en el límite inicial y un color en el límite final. Al pintar con un pincel de este tipo, el color cambia gradualmente desde el color inicial hasta el color final a medida que se mueve del límite inicial al límite final. Puede crear un degradado más complejo mediante el método LinearGradientBrush::SetInterpolationColors para especificar una matriz de colores y sus posiciones de mezcla correspondientes que se van a interpolar para este pincel de degradado lineal.

Puede obtener los colores y las posiciones de mezcla establecidas actualmente para un pincel de degradado lineal llamando a su método LinearGradientBrush::GetInterpolationColors . Antes de llamar al método LinearGradientBrush::GetInterpolationColors , debe asignar dos búferes: uno para contener la matriz de colores y otro para contener la matriz de posiciones de mezcla. Puede llamar al método LinearGradientBrush::GetInterpolationColorCount para determinar el tamaño necesario de esos búferes. El tamaño del búfer de colores es el valor devuelto de LinearGradientBrush::GetInterpolationColorCount multiplicado por sizeof(Color). El tamaño del búfer de posiciones de mezcla es el valor de LinearGradientBrush::GetInterpolationColorCount multiplicado por sizeof( REAL).

Ejemplos

En el ejemplo siguiente se establecen los colores que se interpolan para este pincel de degradado lineal en rojo, azul y verde y se establecen las posiciones de mezcla en 0, 0,3 y 1. El código llama al método LinearGradientBrush::GetInterpolationColorCount de un objeto LinearGradientBrush para obtener el número de colores establecidos actualmente para interpolarse para el pincel. A continuación, el código obtiene los colores y sus posiciones. A continuación, el código rellena un rectángulo pequeño con cada color.

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 compatible Windows XP, Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado gdiplusbrush.h (include Gdiplus.h)
Library Gdiplus.lib
Archivo DLL Gdiplus.dll

Consulte también

Pinceles y formas rellenas

Color

Creación de un degradado lineal

Rellenar una forma con un degradado de color

LinearGradientBrush

LinearGradientBrush::GetInterpolationColors

LinearGradientBrush::SetInterpolationColors

PathGradientBrush

Rect

SolidBrush