Modifie une région (Region) avec la partie d'elle-même qui coupe l'intérieur d'un tracé spécifié (GraphicsPath)
#include <GDIPlus.au3>
_GDIPlus_RegionCombinePath ( $hRegion, $hPath [, $iCombineMode = 2] )
$hRegion | Handle de l'objet Region |
$hPath | Handle de l'objet GraphicsPath qui spécifie le tracé à utiliser pour modifier la région |
$iCombineMode | [optionnel] Mode de combinaison qui spécifie comment la région est combinée avec le tracé: 0 - Replace: la région existante est remplacée par la nouvelle région 1 - Intersect: La région existante est remplacée par l'intersection d'elle-même et la nouvelle région 2 - Union: la région existante est remplacée par la réunion d'elle-même et de la nouvelle région 3 - Xor: la région existante est remplacée par le résultat de l'exécution d'un OU exclusif sur les deux régions. Un point est dans le OU exclusif de deux régions si il est dans une région ou l'autre mais pas dans les deux régions. 4 - Exclude: La région existante est remplacée par la portion d'elle-même qui est en dehors de la nouvelle région 5 - Complement: La région existante est remplacée par la nouvelle portion de la région qui est en dehors de la région existante |
Succès: | Retourne True. |
Échec: | Retourne False et définit @error <> 0, @extended contient le code erreur GPSTATUS ($GPID_ERR*). |
_GDIPlus_RegionCombineRect, _GDIPlus_RegionCombineRegion
Consultez GdipCombineRegionPath dans la Librairie MSDN.
#include <GDIPlus.au3> #include <GUIConstantsEx.au3> #include <WinAPIGdi.au3> #include <WinAPIHObj.au3> Example() Func Example() Local $hGUI, $hPath, $hFamily, $tLayout, $aSize, $hRegion, $hRGN _GDIPlus_Startup() $hGUI = GUICreate("GDI+", 620, 100) GUISetBkColor(0x80) ; Régle la couleur de fond de la fenêtre à bleu GUISetState(@SW_SHOW) $hPath = _GDIPlus_PathCreate() ; Crée un objet path $hFamily = _GDIPlus_FontFamilyCreate("Arial Black") ; Crée un objet FontFamily $tLayout = _GDIPlus_RectFCreate() ; Crée une chaîne délimitée par un rectangle de position X=0, Y=0 _GDIPlus_PathAddString($hPath, "AutoIt rulez!", $tLayout, $hFamily, 0, 85, 0) ; Ajoute le contour de la chaîne au Path $aSize = WinGetPos($hGUI) ; Obtient windowsize $hRegion = _GDIPlus_RegionCreateFromRect(0, 0, 110, $aSize[3]) ; Crée une région à partir d'un rectangle _GDIPlus_RegionCombineRect($hRegion, $aSize[2] - 110, 0, 110, $aSize[3], 2) ; Combine rectangle_left ET rectangle_right _GDIPlus_RegionCombinePath($hRegion, $hPath, 3) ; Combine- XOR les rectangles contenant les chaînes $hRGN = _GDIPlus_RegionGetHRgn($hRegion, 0) ; Crée une région GDI à partir de la région GDI+ _WinAPI_SetWindowRgn($hGUI, $hRGN) ; Définit une région partie de la fenêtre ; Boucle jusqu'à ce que l'utilisateur quitte Do Until GUIGetMsg() = $GUI_EVENT_CLOSE ; Nettoie les ressources _GDIPlus_FontFamilyDispose($hFamily) _WinAPI_DeleteObject($hRGN) _GDIPlus_RegionDispose($hRegion) _GDIPlus_PathDispose($hPath) _GDIPlus_Shutdown() EndFunc ;==>Example