LinearGradientBrush::SetBlend, méthode (gdiplusbrush.h)
La méthode LinearGradientBrush::SetBlend définit les facteurs de fusion et les positions de fusion de ce pinceau à dégradé linéaire pour créer un mélange personnalisé.
Syntaxe
Status SetBlend(
[in] const REAL *blendFactors,
[in] const REAL *blendPositions,
[in] INT count
);
Paramètres
[in] blendFactors
Type : const REAL*
Pointeur vers un tableau de nombres réels qui spécifient des facteurs de fusion. Chaque nombre du tableau spécifie un pourcentage de la couleur de fin et doit se trouver dans la plage comprise entre 0,0 et 1,0.
[in] blendPositions
Type : const REAL*
Pointeur vers un tableau de nombres réels qui spécifient des positions de fusion. Chaque nombre dans le tableau indique un pourcentage de la distance entre la limite de départ et la limite de fin et se trouve dans la plage comprise entre 0,0 et 1.0, où 0,0 indique la limite de début du dégradé et 1.0 indique la limite de fin. Au moins deux positions doivent être spécifiées : la première position, qui est toujours 0.0f, et la dernière position, qui est toujours 1.0f. Sinon, le comportement n’est pas défini. Une position de fusion comprise entre 0,0 et 1,0 indique une ligne, parallèle aux lignes limites, qui est une certaine fraction de la distance entre la limite de départ et la limite de fin. Par exemple, une position de fusion de 0,7 indique la ligne qui correspond à 70 % de la distance entre la limite de départ et la limite de fin. La couleur est constante sur les lignes qui sont parallèles aux lignes limites.
[in] count
Type : INT
Entier qui spécifie le nombre d’éléments dans le tableau blendFactors . Il s’agit du même nombre d’éléments dans le tableau blendPositions . Le facteur de fusion d’un index de tableau donné correspond à la position de fusion sur ce même index de tableau.
Valeur retournée
Type : État
Si la méthode réussit, elle retourne Ok, qui est un élément de l’énumération Status .
Si la méthode échoue, elle retourne l’un des autres éléments de l’énumération Status .
Notes
Un objet LinearGradientBrush a deux limites. Lorsque vous remplissez une zone avec un pinceau en dégradé linéaire, la couleur change progressivement à mesure que vous passez de la limite de départ à la limite de fin. Par défaut, la couleur est linéairement liée à la distance, mais vous pouvez personnaliser la relation entre la couleur et la distance en appelant la méthode LinearGradientBrush::SetBlend .
Exemples
L’exemple suivant crée un pinceau de dégradé linéaire, définit un mélange personnalisé et utilise le pinceau pour remplir un rectangle.
VOID Example_SetBlend(HDC hdc)
{
Graphics myGraphics(hdc);
REAL factors[4] = {0.0f, 0.4f, 0.6f, 1.0f};
REAL positions[4] = {0.0f, 0.2f, 0.8f, 1.0f};
Rect rect(0, 0, 100, 50);
LinearGradientBrush linGrBrush(
rect,
Color(255, 255, 0, 0), // red
Color(255, 0, 0, 255), // blue
LinearGradientModeHorizontal);
linGrBrush.SetBlend(factors, positions, 4);
myGraphics.FillRectangle(&linGrBrush, rect);
}
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