Metodo LinearGradientBrush::GetInterpolationColorCount (gdiplusbrush.h)
Il metodo LinearGradientBrush::GetInterpolationColorCount ottiene il numero di colori attualmente impostato per essere interpolato per questo pennello sfumatura lineare.
Sintassi
INT GetInterpolationColorCount();
Valore restituito
Tipo: INT
Questo metodo restituisce il numero di colori da interpolare per questo pennello sfumatura lineare. Se non sono stati impostati colori usando LinearGradientBrush::SetInterpolationColors o se le posizioni non valide sono state passate a LinearGradientBrush::SetInterpolationColors, LinearGradientBrush::GetInterpolationColorCount restituisce 0.
Commenti
Un semplice pennello a sfumatura lineare ha due colori: un colore al limite iniziale e un colore al limite finale. Quando si dipinge con tale pennello, il colore cambia gradualmente dal colore iniziale al colore finale mentre si passa dal limite iniziale al limite finale. È possibile creare una sfumatura più complessa usando il metodo LinearGradientBrush::SetInterpolationColors per specificare una matrice di colori e le relative posizioni di blend corrispondenti da interpolare per questo pennello sfumatura lineare.
È possibile ottenere i colori e le posizioni di blend attualmente impostate per un pennello sfumatura lineare chiamando il metodo LinearGradientBrush::GetInterpolationColors . Prima di chiamare il metodo LinearGradientBrush::GetInterpolationColors , è necessario allocare due buffer: uno per contenere la matrice di colori e uno per contenere la matrice di posizioni di blend. È possibile chiamare il metodo LinearGradientBrush::GetInterpolationColorCount per determinare le dimensioni necessarie di tali buffer. Le dimensioni del buffer dei colori sono il valore restituito di LinearGradientBrush::GetInterpolationColorCount moltiplicato per sizeof(Color). La dimensione del buffer delle posizioni di blend è il valore di LinearGradientBrush::GetInterpolationColorCount moltiplicato per sizeof( REAL).
Esempio
L'esempio seguente imposta i colori da interpolare per questo pennello sfumatura lineare su rosso, blu e verde e imposta le posizioni di blend su 0, 0,3 e 1. Il codice chiama il metodo LinearGradientBrush::GetInterpolationColorCount di un oggetto LinearGradientBrush per ottenere il numero di colori attualmente impostato per essere interpolato per il pennello. Successivamente, il codice ottiene i colori e le relative posizioni. Quindi, il codice riempie un piccolo rettangolo con ogni colore.
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);
}
}
Requisiti
Client minimo supportato | Windows XP, Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | gdiplusbrush.h (include Gdiplus.h) |
Libreria | Gdiplus.lib |
DLL | Gdiplus.dll |
Vedi anche
Creazione di una sfumatura lineare
Riempimento di una forma con sfumatura di colore
LinearGradientBrush::GetInterpolationColors