GdipSetClipHrgn()



Syntaxe
Resultat.i = GdipSetClipHrgn(*graphics, hRgn.i, combineMode.i)

Paramètres

*graphics

[in] Pointeur sur un objet Graphics ou la modification sera effective.

hRgn.i

[in] Handle d'une région GDI qui spécifie la zone de découpage qui sera combinée avec celle du graphique *graphics.

combineMode.i

[in] Elément de l'énumération CombineMode qui spécifie la manière dont la région (hRgn) est combinée avec la zone de découpage du graphique *graphics.

Description

Cette fonction permet de combiner la zone de découpage du graphique courant avec la région passée par le paramètre hRgn, la zone de découpage du graphique courant est mis à jour avec le résultat de cette combinaison. La région est identifiée par un handle GDI, cette fonction n'existe que pour une compatibilité avec GDI. Les nouvelle applications doivent utiliser les régions GDI+ et la fonction GdipSetClipRegion().
Les API GDI suivantes peuvent être utilisées : CombineRgn, CreateEllipticRgn,.CreateEllipticRgnIndirect, CreatePolygonRgn, CreatePolyPolygonRgn, CreateRectRgn, CreateRectRgnIndirect, CreateRoundRectRgn, ExtCreateRegion. L'APi DeleteObject sera utilisée pour supprimer la région.
Si aucune zone de découpe n'est précisée pour le graphique principal, c'est toute la surface du graphique qui est considérée comme zone de découpe.
Le paramètre combineMode défini la manière de combiner les deux zones.
Exemple :
Dessine une fenêtre.
Le graphique principal (qui correspond au paramètre *graphics de la fonction) est créé à partir du Hdc de la fenêtre principale
On crée une région elliptique GDI (non lié au graphique) : x = 0, y = 0, largeur et hauteur 100 pixels
On crée une zone de découpage rectangulaire pour le graphique (définie par la fonction GdipSetClipRectI()) : x =50, y = 50, largeur 350 et hauteur 200 pixels.
On dessine un rectangle plein en jaune sur cette fenêtre qui matérialise la zone de découpe du graphique.
Ce rectangle est placé en x= 50, y = 20 avec une largeur de 300 et une hauteur de 150 pixels.
On combine le graphique avec la région (GdipSetClipRegion()).avec le mode de combinaison #CombineModeIntersect, c'est à dire que la région de découpe d'origine du graphique principal est l'intersection entre sa propre zone de découpe et l'ellipse définie par la région.
On dessine un rectangle plein en bleu aux coordonnées x = 0, y = 0 largeur 350 et hauteur 200 pixels.
La combinaison ne va pas permettre de dessiner ce rectangle complètement, mais un quart de l'ellipse sera dessiné en bleu (intersection).

Résultat de la fonction

Si la fonction réussit, elle retourne #Ok qui est une constante de l'énumération status.
Si la fonction échoue, elle retourne une des autres valeurs de l'énumération status.

PB - OS

PureBasic v4.30 bêta 4 (Windows - x86)
Testé avec Windows Vista édition familiale Premium