GdipSetClipGraphics()



Syntaxe
Resultat.i = GdipSetClipGraphics(*graphics, *srcgraphics, combineMode.i)
Paramètres
*graphics

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

*srcgraphics

[in] Pointeur sur un objet Graphics 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 zone de découpage source (*srcgraphics) 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 zone de découpage d'un autre graphique (paramètre *srcgraphics), la zone de découpage du graphique courant est mis à jour avec le résultat de cette combinaison.

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. Idem pour le graphique source.

Le paramètre combineMode défini la manière de combiner les deux zones.

1er exemple :
Le premier exemple dessine 2 fenêtres distinctes, la fenêtre principale et la fenêtre source. Le graphique principal (qui correspond au paramètre *graphics de la fonction) est créé dans la boucle d'événements à partir du Hdc de la fenêtre principale, la surface de la fenêtre servant de zone de découpe. Le graphique source est créé à partir de l'identifiant système de la fenêtre source toujours dans la boucle d'événements. On affiche un rectangle plein en jaune sur cette fenêtre qui matérialise la zone de découpe qui est la surface complète de ma fenêtre.
Ce rectangle est placé en x= 50, y = 20 avec une largeur et hauteur de 200 pixels.
Ensuite, on crée une zone de découpe rectangulaire (GdipSetClipRectI()) à x = 0, y = 0 avec une largeur et hauteur de 100 pixels pour le graphique source que l'on matérialise avec un rectangle plein dessiné en noir.
Pour terminer, la zone de découpe combinant les 2 graphiques et leur zone de découpe respective est créée avec le mode de combinaison #CombineModeReplace, c'est à dire que la région de découpe d'origine du graphique principal (sa surface complète) est remplacée par la zone de découpe du graphique source, à savoir x = 0, y = 0 avec une largeur et hauteur de 100 pixels.

On tente ensuite de dessiner sur le graphique principal, un rectangle plein en bleu couvrant la surface complète du graphique à x = 0, y = 0 de largeur 350 et hauteur 200 pixels. La combinaison ne va pas permettre de dessiner ce rectangle complètement, mais seul un rectangle de taille et position identiques au rectangle du graphique source sera dessiné (en bleu).

2ème exemple :
Le second exemple est proche du premier exemple. Une zone de découpe à x = 50, y = 50 largeur 350 et hauteur de 200 pixels est créée pour le graphique principal et affichée en jaune. Pour le graphique source, c'est la même chose que le 1er exemple. Pour combiner les régions, on utilise le mode d'intersection des 2 régions (#CombineModeIntersect).

On tente ensuite de dessiner sur le graphique principal, un rectangle plein en bleu couvrant la surface complète du graphique à x = 0, y = 0 de largeur 350 et hauteur 200 pixels. La combinaison ne va pas permettre de dessiner ce rectangle complètement, mais seul un rectangle à x = 50, y = 50 de largeur et hauteur de 50 pixels sera dessiné (en bleu) correspondant à l'intersection des 2 zones de découpe.

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