Функция GUICtrlCreateProgress

         Описание функции


GUICtrlCreateProgress

Создаёт полоску прогресса в GUI.

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

Параметры

left Координата левого края. Если -1 - тогда координата в соответствии с GUICoordMode.
top Координата верхнего края. Если -1 - тогда координата в соответствии с GUICoordMode.
width [необязательный] Ширина элемента (по умолчанию предыдущее значение).
height [необязательный] Высота элемента (по умолчанию предыдущее значение).
style [необязательный] Стиль элемента. Смотрите Стили элементов GUI в приложении.
exStyle [необязательный] Расширенный стиль элемента. Смотрите таблицу расширенных стилей.

Возвращаемое значение

Успех:Возвращает идентификатор (controlID) нового элемента.
Ошибка:Возвращает 0.

Примечания

Для получения параметров элемента смотрите GUICtrlRead.
Чтобы установить или изменить параметры элемента смотрите GUICtrlUpdate....

Для установки позиции (величины) используйте GUICtrlSetData.

Чтобы объединить стили со стилем по умолчанию используйте BitOR($GUI_SS_DEFAULT_PROGRESS, новый стиль,...).

Чтобы использовать параметры, указанные выше, вы должны включить в ваш скрипт #include <ProgressConstants.au3>.

По умолчанию стиль изменения размеров $GUI_DOCKAUTO (размер и позиция изменяются пропорционально).

См. также

GUICoordMode (Опция), GUICtrlSetData, GUICtrlUpdate..., GUIGetMsg

Пример

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

Local $progressbar1, $progressbar2, $button, $wait, $s, $msg, $m

GUICreate("Прогресс бар", 220, 100, 100, 200)
$progressbar1 = GUICtrlCreateProgress(10, 10, 200, 20)
GUICtrlSetColor(-1, 32250); не работает в стиле Windows XP
$progressbar2 = GUICtrlCreateProgress(10, 40, 200, 20, $PBS_SMOOTH) ; $PBS_MARQUEE - бегунок
$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(4096, "Информация", "Половина выполнена...", 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