Fonction GradientFill (wingdi.h)

La fonction GradientFill remplit les structures de rectangle et de triangle.

Syntaxe

BOOL GradientFill(
  [in] HDC        hdc,
  [in] PTRIVERTEX pVertex,
  [in] ULONG      nVertex,
  [in] PVOID      pMesh,
  [in] ULONG      nMesh,
  [in] ULONG      ulMode
);

Paramètres

[in] hdc

Handle du contexte de l’appareil de destination.

[in] pVertex

Pointeur vers un tableau de structures TRIVERTEX qui définissent chacune un sommet.

[in] nVertex

Nombre de sommets dans pVertex.

[in] pMesh

Tableau de structures GRADIENT_TRIANGLE en mode triangle ou tableau de structures GRADIENT_RECT en mode rectangle.

[in] nMesh

Nombre d’éléments (triangles ou rectangles) dans pMesh.

[in] ulMode

Mode de remplissage dégradé. Ce paramètre peut prendre les valeurs suivantes.

Valeur Signification
GRADIENT_FILL_RECT_H
Dans ce mode, deux points de terminaison décrivent un rectangle. Le rectangle est défini pour avoir une couleur constante (spécifiée par la structure TRIVERTEX ) pour les bords gauche et droit. GDI interpole la couleur du bord gauche à droite et remplit l’intérieur.
GRADIENT_FILL_RECT_V
Dans ce mode, deux points de terminaison décrivent un rectangle. Le rectangle est défini pour avoir une couleur constante (spécifiée par la structure TRIVERTEX ) pour les bords supérieur et inférieur. GDI interpole la couleur du bord supérieur vers le bas et remplit l’intérieur.
GRADIENT_FILL_TRIANGLE
Dans ce mode, un tableau de structures TRIVERTEX est passé à GDI, ainsi qu’une liste d’index de tableau qui décrivent des triangles distincts. GDI effectue une interpolation linéaire entre les sommets triangles et remplit l’intérieur. Le dessin s’effectue directement en mode 24 et 32 bpp. Le tramage est effectué en mode 16, 8, 4 et 1 bpp.

Valeur retournée

Si la fonction réussit, la valeur de retour est TRUE.

Si la fonction échoue, la valeur de retour est FALSE.

Remarques

Pour ajouter une trame lisse à un triangle, appelez la fonction GradientFill avec les trois points de terminaison du triangle. GDI interpole et remplit le triangle de manière linéaire. Voici la sortie de dessin d’un triangle ombré.

Illustration d’un triangle qui se remplit de l’orange au point supérieur au magenta sur la ligne du bas Pour ajouter une trame lisse à un rectangle, appelez GradientFill avec les coordonnées supérieure gauche et inférieure droite du rectangle. Deux modes d’ombrage sont utilisés lors du dessin d’un rectangle. En mode horizontal, le rectangle est ombré de gauche à droite. En mode vertical, le rectangle est ombré de haut en bas. Voici la sortie de dessin de deux rectangles ombrés : l’un en mode horizontal, l’autre en mode vertical : Illustration d’un rectangle qui passe de l’ombre sur le côté gauche à la lumière sur le côté droit Illustration d’un rectangle qui passe de sombre en haut à clair en bas La fonction GradientFill utilise une méthode de maillage pour spécifier les points de terminaison de l’objet à dessiner. Tous les sommets sont passés à GradientFill dans le tableau pVertex . Le paramètre pMesh spécifie la façon dont ces sommets sont connectés pour former un objet. Lors du remplissage d’un rectangle, pMesh pointe vers un tableau de structures GRADIENT_RECT . Chaque structure GRADIENT_RECT spécifie l’index de deux sommets dans le tableau pVertex . Ces deux sommets forment la limite supérieure gauche et inférieure droite d’un rectangle.

Dans le cas du remplissage d’un triangle, pMesh pointe vers un tableau de structures GRADIENT_TRIANGLE . Chaque structure GRADIENT_TRIANGLE spécifie l’index de trois sommets dans le tableau pVertex . Ces trois sommets forment un triangle.

Pour simplifier l’accélération matérielle, il n’est pas nécessaire que cette routine soit pixel-perfect dans l’intérieur du triangle.

Notez que GradientFill n’utilise pas le membre Alpha de la structure TRIVERTEX . Pour utiliser GradientFill avec transparence, appelez GradientFill, puis appelez AlphaBlend avec les valeurs souhaitées pour le canal alpha de chaque sommet.

Pour plus d’informations, consultez Ombrage lisse, Dessin d’un triangle ombré et Dessin d’un rectangle ombré.

Configuration requise

Condition requise Valeur
Client minimal pris en charge 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 wingdi.h (inclure Windows.h)
Bibliothèque Msimg32.lib
DLL Msimg32.dll

Voir aussi

Fonctions bitmap

Vue d’ensemble des bitmaps

EMRGRADIENTFILL

GRADIENT_RECT

GRADIENT_TRIANGLE

TRIVERTEX