#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