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 |
---|---|
|
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. |
|
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. |
|
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é.
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 : 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 |