Function Reference


GUICtrlCreateProgress

Creates a Progress control for the GUI.

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

Parameters

left The left side of the control. If -1 is used then left will be computed according to GUICoordMode.
top The top of the control. If -1 is used then top will be computed according to GUICoordMode.
width [optional] The width of the control (default is the previously used width).
height [optional] The height of the control (default is the previously used height).
style [optional] Defines the style of the control. See GUI Control Styles Appendix.
exStyle [optional] Defines the extended style of the control. See Extended Style Table.

Return Value

Success: the identifier (controlID) of the new control.
Failure: 0.

Remarks

To obtain the value of the control see GUICtrlRead().
To set or change information in the control see GUICtrlUpdate...() functions.

To update the bar position just use GUICtrlSetData().

To combine styles with the default style use BitOR($GUI_SS_DEFAULT_PROGRESS, newstyle, ... ).
To use the values specified above you must #include <ProgressConstants.au3> in your script.

Default resizing is $GUI_DOCKAUTO size and position will occur.

Related

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

Example

#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); not working with Windows XP Style
        Local $idProgressbar2 = GUICtrlCreateProgress(10, 40, 200, 20, $PBS_SMOOTH)
        Local $idButton = GUICtrlCreateButton("Start", 75, 70, 70, 20)
        GUISetState(@SW_SHOW)

        Local $iWait = 20; wait 20ms for next progressstep
        Local $iSavPos = 0; progressbar-saveposition

        Local $idMsg, $idM
        ; Loop until the user exits.
        Do
                $idMsg = GUIGetMsg()
                If $idMsg = $idButton Then
                        GUICtrlSetData($idButton, "Stop")
                        For $i = $iSavPos To 100
                                If GUICtrlRead($idProgressbar1) = 50 Then MsgBox($MB_SYSTEMMODAL, "Info", "The half is done...", 1)

                                $idM = GUIGetMsg()
                                If $idM = $GUI_EVENT_CLOSE Then ExitLoop

                                If $idM = $idButton Then
                                        GUICtrlSetData($idButton, "Next")
                                        $iSavPos = $i;save the current bar-position to $iSavPos
                                        ExitLoop
                                Else
                                        $iSavPos = 0
                                        GUICtrlSetData($idProgressbar1, $i)
                                        GUICtrlSetData($idProgressbar2, (100 - $i))
                                        Sleep($iWait)
                                EndIf
                        Next
                        If $i > 100 Then
                                GUICtrlSetData($idButton, "Start")
                        EndIf
                EndIf
        Until $idMsg = $GUI_EVENT_CLOSE
EndFunc   ;==>Example