Si vous n'avez pas beaucoup de changement d'image à faire utilisez GUICtrlCreatePic et GUICtrlSetImage, sinon... c'est un autre problème.
J'ai remarqué que le GUICtrlSetImage était limité...
En effet, au bout d'un certain nombre d'utilisation de GUICtrlSetImage la fonction retourne une erreur (au bout de 9559 images chez moi).
Cela est du aux nombre limité de GDI Handle (<10 000 par processus) ainsi qu'une mauvaise gestion de GUICtrlSetImage qui ne libère pas le GDI handle de l'ancienne image.
Calcul :
Fenêtre de base : 37 GUI Handle
La 1ere pic utilise 3 GUI Handle de plus que les autres (je ne sais pas pourquoi mesure, faite avec process explorer)
1 GUICtrlSetImage utilise 1 GUI Handle (2 GUI Handle si la pic n'a pas encore d'image, faite avec process explorer)
Donc :
37 + 3 + 20*20 = 440 (correspond à créer une fenêtre avec 20*20 pic et en anticipant le fait que 2 GUI Handle seront pris lors du 1er GUICtrlSetImage).
9999-440 = 9559 ce qui correspond bien à ce que nous avons obtenu.
Si vous voulez tester :
► Afficher le textecode
Code : Tout sélectionner
#pragma compile(Icon, C:\Program Files (x86)\AutoIt3\Icons\au3.ico)
#include <GUIConstantsEx.au3>
Opt("GUIOnEventMode", 1)
Opt("MustDeclareVars", 1)
Global $gui
Global $taille[2] = [339, 339]
Global $pics[20][20][2]
Global $nbImagesMax = 4
Global $count = 0
$gui = GUICreate("", $taille[0], $taille[1])
GUISetOnEvent($GUI_EVENT_CLOSE, "quit", $gui)
GUISetState(@SW_SHOW, $gui)
For $y = 0 To UBound($pics, 1)-1
For $x = 0 To UBound($pics, 2)-1
$pics[$y][$x][0] = -1
$pics[$y][$x][1] = GUICtrlCreatePic("", $x*17, $y*17, 16, 16)
Next
Next
While(True)
For $y = 0 To UBound($pics, 1)-1
For $x = 0 To UBound($pics, 2)-1
$pics[$y][$x][0] = Mod($pics[$y][$x][0]+1, $nbImagesMax)
Local $retour = GUICtrlSetImage($pics[$y][$x][1], @ScriptDir & "\" & $pics[$y][$x][0] & ".bmp")
$count += 1
If($count >= 9556) Then
ConsoleWrite($count & " : " & $retour & @CRLF)
Sleep(1000)
EndIf
Next
Next
WEnd
Func quit()
Exit
EndFunc
Edit : avec les images ça sera mieux ^^
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679