Functions > GUI > GUICtrlCreate >


GUICtrlCreateProgress

Crée un contrôle barre de progression -ProgressBar- dans une GUI.

GUICtrlCreateProgress ( left, top [, width [, height [, style = -1 [, exStyle = -1]]]] )

Paramètres

left Coordonnée X du coin supérieur gauche du contrôle. Si -1 est utilisé, X sera calculée en accord avec GUICoordMode.
top Coordonnée Y du coin supérieur gauche du contrôle. Si -1 est utilisé, Y sera calculée en accord avec GUICoordMode.
width [optionnel] Largeur du contrôle (par défaut, la largeur utilisée précédemment).
height [optionnel] Hauteur du contrôle (par défaut, la hauteur précédemment utilisé).
style [optionnel] Définit le style du contrôle. Consultez l'Annexe des styles des contrôles GUI.
exStyle [optionnel] Définit le style étendu du contrôle. Consultez Table des styles étendus.

Valeur de retour

Succès: Retourne l'identifiant (controlID) du nouveau contrôle.
Échec: Retourne 0.

Remarques

Pour obtenir la valeur du contrôle, consultez GUICtrlRead().
Pour définir ou modifier des informations dans le contrôle, consultez les fonctions GUICtrlUpdate...().

Pour mettre à jour la position de la barre il suffit d'utiliser GUICtrlSetData().

Pour combiner des styles avec l'utilisation de style par défaut BitOR ($GUI_SS_DEFAULT_PROGRESS, newstyle, ...).
 Pour utiliser les valeurs spécifiées ci-dessus, vous devez ajouter #include <ProgressConstants.au3> dans votre script.

Par défaut le redimensionnement est $GUI_DOCKAUTO, la taille et la position seront modifiées.

En relation

GUICoordMode (Option), GUICtrlSetData, GUICtrlUpdate..., GUIGetMsg

Exemple

#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <ProgressConstants.au3>

Example()

Func Example()
    GUICreate("My GUI Progressbar", 220, 100, 100, 200)
    Local $idProgressbar1 = GUICtrlCreateProgress(10, 10, 200, 20)
    GUICtrlSetColor(-1, 32250); Ne fonctionne pas avec les styles de Windows XP
    Local $idProgressbar2 = GUICtrlCreateProgress(10, 40, 200, 20, $PBS_SMOOTH)
    Local $idButton = GUICtrlCreateButton("Start", 75, 70, 70, 20)
    GUISetState(@SW_SHOW)

    Local $iWait = 20; Attend 20 ms pour le prochain pas de la progression
    Local $iSavPos = 0; progressbar - Sauvegarde la position

    Local $idMsg, $idM
    ; Boucle jusqu'à ce que l'utilisateur quitte.
    Do
        $idMsg = GUIGetMsg()
        If $idMsg = $idButton Then
            GUICtrlSetData($idButton, "Stop")
            For $i = $iSavPos To 100
                If GUICtrlRead($idProgressbar1) = 50 Then MsgBox($MB_SYSTEMMODAL, "Info", "La moitié du travail est fait...", 1)
                $idM = GUIGetMsg()

                If $idM = -3 Then ExitLoop

                If $idM = $idButton Then
                    GUICtrlSetData($idButton, "Next")
                    $iSavPos = $i; sauve la position actuelle de la barre dans $iSavPos 
                    ExitLoop
                Else
                    $iSavPos = 0
                    GUICtrlSetData($idProgressbar1, $i)
                    GUICtrlSetData($idProgressbar2, (100 - $i))
                    Sleep($iWait)
                EndIf
            Next
            If $i > 100 Then
                ; $iSavPos = 0
                GUICtrlSetData($idButton, "Start")
            EndIf
        EndIf
    Until $idMsg = $GUI_EVENT_CLOSE
EndFunc   ;==>Example