Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <GdiPlus.au3>
#include <WindowsConstants.au3>
Global $Form1 = GUICreate("SpiRale", 696, 640, 436, 240)
Global $Pic1 = GUICtrlCreatePic("", 40, 8, 612, 612)
Global $hdwpic=GUICtrlGetHandle($Pic1)
GUISetState(@SW_SHOW)
Global $Matrice=[0,1,2,3,4,5,6,7,8]
_GDIPlus_Startup()
$graph=_GDIPlus_GraphicsCreateFromHWND($hdwpic)
_GDIPlus_GraphicsClear($graph,0xFFFFFFFF)
$red=_GDIPlus_PenCreate(0xFFFF0000)
$blue=_GDIPlus_PenCreate(0xFF0000FF)
$brush = _GDIPlus_BrushCreateSolid(0xFF0000FF)
do
For $i=0 To 612 Step 69
_GDIPlus_GraphicsDrawRect($graph,$i+2,255,50,50,$red)
_SPIRALE($graph,$i+2,255,$brush,$Matrice[Round($i/69)])
Sleep(10)
Next
For $i=0 to UBound($Matrice)-1
$Matrice[$i]=Mod($Matrice[$i]+1,9)
Next
_GDIPlus_GraphicsClear($graph,0xFFFFFFFF)
Until GUIGetMsg()=-3
_GDIPlus_Shutdown()
Func _SPIRALE($HdllGraphic,$X,$Y,$brush,$Rang);rang 0-->8
Switch $Rang
Case 0
_GDIPlus_GraphicsFillRect($graph,$X-2,$Y+35,10,10,$brush)
Case 1
_GDIPlus_GraphicsFillRect($graph,$X-2,$Y+45,10,10,$brush)
Case 2
_GDIPlus_GraphicsFillRect($graph,$X+15,$Y+45,10,10,$brush)
Case 3
_GDIPlus_GraphicsFillRect($graph,$X+35,$Y+45,10,10,$brush)
Case 4
_GDIPlus_GraphicsFillRect($graph,$X+45,$Y+35,10,10,$brush)
Case 5
_GDIPlus_GraphicsFillRect($graph,$X+45,$Y+15,10,10,$brush)
Case 6
_GDIPlus_GraphicsFillRect($graph,$X+35,$Y-3,10,10,$brush)
Case 7
_GDIPlus_GraphicsFillRect($graph,$X+15,$Y-3,10,10,$brush)
Case 8
_GDIPlus_GraphicsFillRect($graph,$X-3,$Y+10,10,10,$brush)
EndSwitch
EndFunc