基 础 函 数 参 考


GUICtrlCreateProgress

创建进度条(Progress)控件.

GUICtrlCreateProgress ( 左距, 顶距 [, 宽度 [, 高度 [, 样式 [, 扩展样式]]]] )

参 数

左距 控件左侧的位置. 若此值为 -1, 则根据 GUICoordMode 的设置计算左侧位置.
顶距 控件上方的位置. 若此值为 -1, 则根据 GUICoordMode 的设置计算顶部位置.
宽度 [可选参数] 控件的宽度(默认使用先前的宽度).
高度 [可选参数] 控件的高度(默认使用先前的高度).
样式 [可选参数] 控件的样式. 查看附录 GUI 控件样式表.
扩展样式 [可选参数] 控件的扩展样式. 查看附录 扩展样式表.

返 回 值

成功: 返回控件标识符(控件ID).
失败: 返回 0.

备 注

要获得控件的值, 查看 GUICtrlRead.
设置或者修改控件信息, 参考 GUICtrlUpdate....

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

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

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

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

相 关 函 数

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

函 数 示 例


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

Example()

Func Example()
    Local $progressbar1, $progressbar2, $button, $wait, $s, $msg, $m

    GUICreate("我的进度条 GUI", 220, 100, 100, 200)
    $progressbar1 = GUICtrlCreateProgress(10, 10, 200, 20)
    GUICtrlSetColor(-1, 32250); 不工作于 Windows XP 样式
    $progressbar2 = GUICtrlCreateProgress(10, 40, 200, 20, $PBS_SMOOTH)
    $button = GUICtrlCreateButton("启动", 75, 70, 70, 20)
    GUISetState()

    $wait = 20; 进度步进值 20 毫秒
    $s = 0; 保存进度值
    Do
        $msg = GUIGetMsg()
        If $msg = $button Then
            GUICtrlSetData($button, "停止")
            For $i = $s To 100
                If GUICtrlRead($progressbar1) = 50 Then MsgBox(0, "信息", "完成一半...", 1)
                $m = GUIGetMsg()

                If $m = -3 Then ExitLoop

                If $m = $button Then
                    GUICtrlSetData($button, "继续")
                    $s = $i;保存当前进度位置到 $s
                    ExitLoop
                Else
                    $s = 0
                    GUICtrlSetData($progressbar1, $i)
                    GUICtrlSetData($progressbar2, (100 - $i))
                    Sleep($wait)
                EndIf
            Next
            If $i > 100 Then
                ;       $s=0
                GUICtrlSetData($button, "启动")
            EndIf
        EndIf
    Until $msg = $GUI_EVENT_CLOSE
EndFunc   ;==>Example

provider with jb51.net (unicode)