_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