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
Preenchendo uma forma com um gradiente de cor
LinearGradientBrush::GetInterpolationColors