Function Reference

首页  后退  前进

GUICtrlCreateProgress

 

创建进度条(Progress)控件.

 

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

参数

left

控件左侧的位置. 若此值为 -1, 则根据 GUICoordMode() 的设置计算左侧位置.

top

控件上方的位置. 若此值为 -1, 则根据 GUICoordMode() 的设置计算顶部位置.

width

[可选] 控件的宽度(默认使用先前的宽度).

height

[可选] 控件的高度(默认使用先前的高度).

style

[可选] 控件的样式. 查看附录 GUI 控件样式表.

exStyle

[可选] 控件的扩展样式. 查看附录 扩展样式表.

返回值

成功:

返回控件标识符(控件ID).

失败:

返回 0.

备注

要获得控件的值, 查看 GUICtrlRead().

设置或者修改控件信息, 参考 GUICtrlUpdate...() 控件更新控件更新类函数.

 

更新进度位置, 请参考 GUICtrlSetData().

 

要在默认样式上添加新样式, 可使用 BitOR($GUI_SS_DEFAULT_PROGRESS, 新样式,...) 语句.

使用上面列出的值必须将 #include <ProgressConstants.au3> 语句写入脚本中.

 

默认大小 $GUI_DOCKAUTO 出现的大小和位置.

相关

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

函数示例

#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 = -3 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
                ;       $iSavPos=0
                GUICtrlSetData($idButton, "Start")
            EndIf
        EndIf
    Until $idMsg = $GUI_EVENT_CLOSE
EndFunc   ;==>Example

----------------------------------------