Translate un objet Region d'un vecteur spécifié
#include <GDIPlus.au3>
_GDIPlus_RegionTranslate ( $hRegion, $nDX, $nDY )
$hRegion | Handle de l'objet Region |
$nDX | Nombre réel qui indique le nombre de pixels de décalage dans la direction X. |
$nDY | Nombre réel qui indique le nombre de pixels de décalage dans la direction Y. |
Succès: | Retourne True. |
Échec: | Retourne False et définit @error <> 0, @extended contient le code erreur GPSTATUS ($GPID_ERR*). |
Consultez GdipTranslateRegion 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