Compartir a través de


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

El método PathGradientBrush::GetInterpolationColors obtiene los colores preestablecidos y las posiciones de mezcla especificadas actualmente para este pincel de degradado de ruta.

Sintaxis

Status GetInterpolationColors(
  [out] Color *presetColors,
  [out] REAL  *blendPositions,
  [in]  INT   count
);

Parámetros

[out] presetColors

Tipo: Color*

Puntero a una matriz que recibe los colores preestablecidos. Un color de un índice determinado en la matriz presetColors corresponde a la posición de combinación de ese mismo índice en la matriz blendPositions .

[out] blendPositions

Tipo: REAL*

Puntero a una matriz que recibe las posiciones de mezcla. Cada posición de mezcla es un número comprendido entre 0 y 1, donde 0 indica el límite del degradado y 1 indica el punto central. Una posición de combinación entre 0 y 1 indica el conjunto de todos los puntos que son una determinada fracción de la distancia desde el límite hasta el punto central. Por ejemplo, una posición de combinación de 0,7 indica el conjunto de todos los puntos que son el 70 por ciento del camino desde el límite hasta el punto central.

[in] count

Tipo: INT

Entero que especifica el número de elementos de la matriz presetColors . Es el mismo que el número de elementos de la matriz blendPositions .

Valor devuelto

Tipo: Estado

Si el método se ejecuta correctamente, devuelve Ok, que es un elemento de la enumeración Status .

Si se produce un error en el método, devuelve uno de los otros elementos de la enumeración Status .

Comentarios

Un pincel de degradado de trazado simple tiene dos colores: un color de límite y un color central. Al pintar con un pincel de este tipo, el color cambia gradualmente del color del límite al color central a medida que se mueve de la ruta de acceso del límite al punto central. Puede crear un degradado más complejo especificando una matriz de colores preestablecidos y una matriz de posiciones de mezcla.

Antes de llamar al método PathGradientBrush::GetInterpolationColors , debe asignar dos búferes: uno para contener la matriz de colores preestablecidos y otro para contener la matriz de posiciones de mezcla. Puedes llamar al método PathGradientBrush::GetInterpolationColorCount del objeto PathGradientBrush para determinar el tamaño necesario de esos búferes. El tamaño del búfer de color es el valor devuelto de PathGradientBrush::GetInterpolationColorCount multiplicado por sizeof(Color). El tamaño del búfer de posición es el valor de PathGradientBrush::GetInterpolationColorCount multiplicado por sizeof( REAL).

Ejemplos

En el ejemplo siguiente se crea un objeto PathGradientBrush a partir de una ruta triangular. El código establece los colores preestablecidos en rojo, azul y aguamarino y establece las posiciones de mezcla en 0, 0,6 y 1. El código llama al método PathGradientBrush::GetInterpolationColorCount del objeto PathGradientBrush para obtener el número de colores preestablecidos establecidos actualmente para el pincel. A continuación, el código asigna dos búferes: uno para contener la matriz de colores preestablecidos y otro para contener la matriz de posiciones de mezcla. La llamada al método PathGradientBrush::GetInterpolationColors del objeto PathGradientBrush rellena los búferes con los colores preestablecidos y las posiciones de mezcla. Por último, el código rellena un cuadrado pequeño con cada uno de los colores preestablecidos.

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

   // Create a path gradient brush from an array of points, and
   // set the interpolation colors for that brush.

   Point points[] = {Point(100, 0), Point(200, 200), Point(0, 200)};
   PathGradientBrush pthGrBrush(points, 3);

   Color col[] = {
      Color(255, 255, 0, 0),     // red
      Color(255, 0, 0, 255),     // blue
      Color(255, 0, 255, 255)};  // aqua

   REAL pos[] = {
      0.0f,    // red at the boundary
      0.6f,    // blue 60 percent of the way from the boundary to the center
      1.0f};   // aqua at the center

   pthGrBrush.SetInterpolationColors(col, pos, 3);

   // Obtain information about the path gradient brush.
   INT colorCount = pthGrBrush.GetInterpolationColorCount();
   Color* colors = new Color[colorCount];
   REAL* positions = new REAL[colorCount];
   pthGrBrush.GetInterpolationColors(colors, positions, colorCount);

   // Fill a small square with each of the interpolation colors.
   SolidBrush solidBrush(Color(255, 255, 255, 255));

   for(INT j = 0; j < colorCount; ++j)
   {
      solidBrush.SetColor(colors[j]);
      graphics.FillRectangle(&solidBrush, 15*j, 0, 10, 10);
   }

   delete [] colors;
   delete [] positions; 
}

Requisitos

Requisito Value
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 gdipluspath.h (incluya Gdiplus.h)
Library Gdiplus.lib
Archivo DLL Gdiplus.dll

Consulte también

Pinceles y formas rellenas

Color

Crear un degradado de trazado

Rellenar una forma con un degradado de color

PathGradientBrush

PathGradientBrush::GetInterpolationColorCount

PathGradientBrush::SetInterpolationColors