Function Reference

GUICtrlCreateProgress

GUI用のプログレスコントロールを作成します。

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

 

パラメータ

left コントロールの左端。-1を使用するとGUICoordModeに基づいて左端位置が計算されます。
top コントロールの上端。-1を使用するとGUICoordModeに基づいて上端位置が計算されます。
width [オプション] コントロールの幅(デフォルトは最後に使用された幅)。
height [オプション] コントロールの高さ(デフォルトは最後に使用された高さ)。
style [オプション] コントロールのスタイルを定義。GUIコントロールスタイル付録を参照。
exStyle [オプション] コントロールの拡張スタイルを定義。拡張スタイル表を参照。

 

返し値

成功 新しく作成したコントロールの識別子(コントロールID)を返します。
失敗 0を返します。

 

注意

コントロールの値を取得する方法についてはGUICtrlReadを参照。
コントロールの情報を設定/変更する方法についてはGUICtrlUpdate...を参照。

バーの位置を更新するにはGUICtrlSetDataを使用します。

デフォルトスタイルに他のスタイルを組み合わせる場合はBitOr($GUI_SS_DEFAULT_PROGRESS, newstyle,...)を使用してください。

上で指定されている値を使用するためにはスクリプトに#include <ProgressConstants.au3>と書く必要があります。

デフォルトのサイズ変更方法は$GUI_DOCKAUTOで左上位置が基準になります。

 

関連

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

 


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

Opt('MustDeclareVars', 1)

Example()

Func Example()
    Local $progressbar1, $progressbar2, $button, $wait, $s, $msg, $m
   
    GUICreate("My GUI Progressbar", 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("Start", 75, 70, 70, 20)
    GUISetState()

    $wait = 20; 次のプログレスステップまで20ms待機
    $s = 0; プログレスバー-セーブ位置
    Do
        $msg = GUIGetMsg()
        If $msg = $button Then
            GUICtrlSetData($button, "Stop")
            For $i = $s To 100
                If GUICtrlRead($progressbar1) = 50 Then MsgBox(0, "Info", "The half is done...", 1)
                $m = GUIGetMsg()
               
                If $m = -3 Then ExitLoop
               
                If $m = $button Then
                    GUICtrlSetData($button, "Next")
                    $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, "Start")
            EndIf
        EndIf
    Until $msg = $GUI_EVENT_CLOSE
EndFunc   ;==>Example