Modifie une r�gion (Region) avec la partie d'elle-m�me qui coupe une autre r�gion
#include <GDIPlus.au3>
_GDIPlus_RegionCombineRegion ( $hRegionDst, $hRegionSrc [, $iCombineMode = 2] )
$hRegionDst | Handle de l'objet Region destination |
$hRegionSrc | Handle de l'objet Region source � utiliser pour modifier l'objet Region destination $hRegionDst |
$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_RegionCombinePath, _GDIPlus_RegionCombineRect
Consultez GdipCombineRegionRegion dans la Librairie MSDN.
#include <GDIPlus.au3> #include <GUIConstantsEx.au3> Example() Func Example() Local $hGUI, $hGraphic, $hBrush, $hRegion, $hRegion1, $hRegion2, $hPath ; Cr�e une GUI $hGUI = GUICreate("GDI+", 600, 480) GUISetState(@SW_SHOW) _GDIPlus_Startup() $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI) ; Cr�e un objet graphique � partir du handle de la fen�tre _GDIPlus_GraphicsClear($hGraphic, 0xFFFFFFFF) $hBrush = _GDIPlus_BrushCreateSolid(0x7F8800AA) $hPath = _GDIPlus_PathCreate() ; Cr�e un objet path _GDIPlus_PathAddEllipse($hPath, 80, 60, 80, 60) $hRegion1 = _GDIPlus_RegionCreateFromRect(30, 80, 80, 60) $hRegion2 = _GDIPlus_RegionCreateFromPath($hPath) _GDIPlus_GraphicsDrawString($hGraphic, "2 regions", 50, 30) _GDIPlus_GraphicsFillRegion($hGraphic, $hRegion1, $hBrush) _GDIPlus_GraphicsFillRegion($hGraphic, $hRegion2, $hBrush) _GDIPlus_GraphicsDrawString($hGraphic, "intersection", 50, 180) _GDIPlus_RegionTranslate($hRegion1, 0, 150) _GDIPlus_RegionTranslate($hRegion2, 0, 150) $hRegion = _GDIPlus_RegionClone($hRegion1) _GDIPlus_RegionCombineRegion($hRegion, $hRegion2, 1) ; Intersection _GDIPlus_GraphicsFillRegion($hGraphic, $hRegion, $hBrush) _GDIPlus_RegionDispose($hRegion) _GDIPlus_GraphicsDrawString($hGraphic, "union", 250, 180) _GDIPlus_RegionTranslate($hRegion1, 200, 0) _GDIPlus_RegionTranslate($hRegion2, 200, 0) $hRegion = _GDIPlus_RegionClone($hRegion1) _GDIPlus_RegionCombineRegion($hRegion, $hRegion2, 2) ; Union _GDIPlus_GraphicsFillRegion($hGraphic, $hRegion, $hBrush) _GDIPlus_RegionDispose($hRegion) _GDIPlus_GraphicsDrawString($hGraphic, "xor", 450, 180) _GDIPlus_RegionTranslate($hRegion1, 200, 0) _GDIPlus_RegionTranslate($hRegion2, 200, 0) $hRegion = _GDIPlus_RegionClone($hRegion1) _GDIPlus_RegionCombineRegion($hRegion, $hRegion2, 3) ; Xor _GDIPlus_GraphicsFillRegion($hGraphic, $hRegion, $hBrush) _GDIPlus_RegionDispose($hRegion) _GDIPlus_GraphicsDrawString($hGraphic, "region1 sub region2", 50, 330) _GDIPlus_RegionTranslate($hRegion1, -400, 150) _GDIPlus_RegionTranslate($hRegion2, -400, 150) $hRegion = _GDIPlus_RegionClone($hRegion1) _GDIPlus_RegionCombineRegion($hRegion, $hRegion2, 4) ; 1 moins 2 _GDIPlus_GraphicsFillRegion($hGraphic, $hRegion, $hBrush) _GDIPlus_RegionDispose($hRegion) _GDIPlus_GraphicsDrawString($hGraphic, "region2 sub region1", 250, 330) _GDIPlus_RegionTranslate($hRegion1, 200, 0) _GDIPlus_RegionTranslate($hRegion2, 200, 0) $hRegion = _GDIPlus_RegionClone($hRegion1) _GDIPlus_RegionCombineRegion($hRegion, $hRegion2, 5) ; 2 moins 1 _GDIPlus_GraphicsFillRegion($hGraphic, $hRegion, $hBrush) _GDIPlus_RegionDispose($hRegion) ; Boucle jusqu'� ce que l'utilisateur quitte. Do Until GUIGetMsg() = $GUI_EVENT_CLOSE ; Nettoie les ressources _GDIPlus_PathDispose($hPath) _GDIPlus_RegionDispose($hRegion1) _GDIPlus_RegionDispose($hRegion2) _GDIPlus_BrushDispose($hBrush) _GDIPlus_GraphicsDispose($hGraphic) _GDIPlus_Shutdown() EndFunc ;==>Example