Méthode LinearGradientBrush::GetInterpolationColorCount (gdiplusbrush.h)
La méthode LinearGradientBrush::GetInterpolationColorCount obtient le nombre de couleurs actuellement définies pour être interpolées pour ce pinceau de dégradé linéaire.
Syntaxe
INT GetInterpolationColorCount();
Valeur de retour
Type : INT
Cette méthode retourne le nombre de couleurs à interpoler pour ce pinceau de dégradé linéaire. Si aucune couleur n’a été définie à l’aide de LinearGradientBrush::SetInterpolationColors, ou si des positions non valides ont été passées à LinearGradientBrush::SetInterpolationColors, linearGradientBrush::GetInterpolationColorCount retourne 0.
Notes
Un pinceau de dégradé linéaire simple a deux couleurs : une couleur à la limite de début et une couleur à la limite de fin. Lorsque vous peignez à l’aide d’un tel pinceau, la couleur passe progressivement de la couleur de début à la couleur de fin à mesure que vous passez de la limite de début à la limite de fin. Vous pouvez créer un dégradé plus complexe à l’aide de la méthode LinearGradientBrush::SetInterpolationColors pour spécifier un tableau de couleurs et leurs positions de fusion correspondantes à interpoler pour ce pinceau de dégradé linéaire.
Vous pouvez obtenir les couleurs et les positions de fusion actuellement définies pour un pinceau de dégradé linéaire en appelant sa méthode LinearGradientBrush::GetInterpolationColors . Avant d’appeler la méthode LinearGradientBrush::GetInterpolationColors , vous devez allouer deux mémoires tampons : l’une pour contenir le tableau de couleurs et l’autre pour contenir le tableau des positions de fusion. Vous pouvez appeler la méthode LinearGradientBrush::GetInterpolationColorCount pour déterminer la taille requise de ces mémoires tampons. La taille de la mémoire tampon de couleurs est la valeur de retour de LinearGradientBrush::GetInterpolationColorCount multipliée par sizeof(Color). La taille de la mémoire tampon des positions de fusion est la valeur de LinearGradientBrush::GetInterpolationColorCount multipliée par sizeof( REAL).
Exemples
L’exemple suivant définit les couleurs à interpoler pour ce pinceau de dégradé linéaire sur le rouge, le bleu et le vert, et définit les positions de fusion sur 0, 0,3 et 1. Le code appelle la méthode LinearGradientBrush::GetInterpolationColorCount d’un objet LinearGradientBrush pour obtenir le nombre de couleurs actuellement définies pour être interpolées pour le pinceau. Ensuite, le code obtient les couleurs et leurs positions. Ensuite, le code remplit un petit rectangle avec chaque couleur.
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);
}
}
Spécifications
Client minimal pris en charge | Windows XP, Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | gdiplusbrush.h (inclure Gdiplus.h) |
Bibliothèque | Gdiplus.lib |
DLL | Gdiplus.dll |
Voir aussi
Création d’un dégradé linéaire
Remplissage d’une forme avec un dégradé de couleurs
LinearGradientBrush::GetInterpolationColors