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
Creación de un degradado lineal
Rellenar una forma con un degradado de color
LinearGradientBrush::GetInterpolationColors