Функция _GUICtrlStatusBar_EmbedControl

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


_GUICtrlStatusBar_EmbedControl

Вставляет дочерний элемент в строку состояния

#include <GuiStatusBar.au3>
_GUICtrlStatusBar_EmbedControl($hWnd, $iPart, $hControl [, $iFit = 4])

Параметры

$hWnd Дескриптор элемента
$iPart Индекс части, отсчёт от 0
$hControl Дескриптор элемента вставляемого в строку состояния
$iFit [необязательный] Определяет как поместить элемент. Может быть комбинацией следующего:
    1 - Центрировать элемент горизонтально
    2 - Центрировать элемент вертикально
    4 - Изменить размер элемента до размеров части строки состояния

Примечания

Вы можете вставлять любой элемент управления в строку состояния, а не только обычный Progress Bar

Пример

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

$Debug_SB = False ; Проверяет ClassName передаваемый в функции. Установите True и используйте дескриптор от другого элемента, чтобы увидеть как это работает

_Main()

Func _Main()

    Local $hGUI, $hProgress, $hInput, $input, $progress, $hStatus
    Local $aParts[4] = [80, 160, 300, -1]

    ; Создаёт GUI
    $hGUI = GUICreate("StatusBar - Вставка элемента", 400, 300)

    ;===============================================================================
    ; по умолчанию одна часть, без текста
    $hStatus = _GUICtrlStatusBar_Create ($hGUI)
    _GUICtrlStatusBar_SetMinHeight ($hStatus, 20)

    ;===============================================================================
    GUISetState()

    ; Инициализация частей
    _GUICtrlStatusBar_SetParts ($hStatus, $aParts)
    _GUICtrlStatusBar_SetText ($hStatus, "Часть 1")
    _GUICtrlStatusBar_SetText ($hStatus, "Часть 2", 1)

    ; Вставляет полосу прогресса
    If @OSTYPE = "WIN32_WINDOWS" Then
        $progress = GUICtrlCreateProgress(0, 0, -1, -1, $PBS_SMOOTH)
        $hProgress = GUICtrlGetHandle($progress)
        _GUICtrlStatusBar_EmbedControl ($hStatus, 2, $hProgress)
    Else
        $progress = GUICtrlCreateProgress(0, 0, -1, -1, $PBS_MARQUEE) ; стиль бегунка работает на Win XP и выше
        $hProgress = GUICtrlGetHandle($progress)
        _GUICtrlStatusBar_EmbedControl ($hStatus, 2, $hProgress)
        _SendMessage($hProgress, $PBM_SETMARQUEE, True, 100) ; стиль бегунка работает на Win XP и выше
    EndIf

    $input = GUICtrlCreateInput("Это вставка", 0, 0)
    $hInput = GUICtrlGetHandle($input)
    _GUICtrlStatusBar_EmbedControl ($hStatus, 3, $hInput, 3)

    ; Цикл выполняется, пока окно не будет закрыто
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
EndFunc   ;==>_Main