#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>

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

Global $iMemo

Example1()
Example2()

Func Example1()

	Local $hGUI, $hIcon, $hStatus
	Local $aParts[4] = [80, 160, 300, 400]

	; Создаёт GUI
	$hGUI = GUICreate("(Пример 1) Получает текст подсказки", 400, 300)
	$hStatus = _GUICtrlStatusBar_Create ($hGUI, -1, "", $SBARS_TOOLTIPS)

	; Создаёт элемент для заметок
	$iMemo = GUICtrlCreateEdit("", 2, 2, 396, 274, $WS_VSCROLL)
	GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
	GUISetState()

	; Устанавливает части
	_GUICtrlStatusBar_SetParts ($hStatus, $aParts)
	_GUICtrlStatusBar_SetText ($hStatus, "Заставляет появляться подсказку, когда текст больше чем вместимость прямоугольника", 1)

	; Устанавливает иконку
	$hIcon = _WinAPI_LoadShell32Icon (23)
	_GUICtrlStatusBar_SetIcon ($hStatus, 0, $hIcon)

	; Устанавливает текст подсказки
	_GUICtrlStatusBar_SetTipText ($hStatus, 0, "Подсказка появляется, когда только иконка в части или текст превышают часть")
	_GUICtrlStatusBar_SetTipText ($hStatus, 1, "Заставляет появляться подсказку, когда текст больше чем вместимость прямоугольника")

	MemoWrite("Удерживайте курсор мыши над частью для просмотра подсказки." & @CRLF)

	; Получает текст подсказки
	MemoWrite("Текст подсказки 1: " & _GUICtrlStatusBar_GetTipText ($hStatus, 0) & @CRLF)
	MemoWrite("Текст подсказки 2: " & _GUICtrlStatusBar_GetTipText ($hStatus, 1))

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

Func Example2()

	Local $hGUI, $hStatus
	Local $aParts[4] = [80, 160, 300, 400]

	; Создаёт GUI
	$hGUI = GUICreate("(Пример 2) Получает текст подсказки", 400, 300)
	$hStatus = _GUICtrlStatusBar_Create ($hGUI, -1, "", $SBARS_TOOLTIPS)

	; Создаёт элемент для заметок
	$iMemo = GUICtrlCreateEdit("", 2, 2, 396, 274, $WS_VSCROLL)
	GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
	GUISetState()

	; Устанавливает части
	_GUICtrlStatusBar_SetParts ($hStatus, $aParts)
	_GUICtrlStatusBar_SetText ($hStatus, "Заставляет появляться подсказку, когда текст больше чем вместимость прямоугольника", 1)

	; Устанавливает иконку
	_GUICtrlStatusBar_SetIcon ($hStatus, 0, 23, "shell32.dll")

	; Устанавливает текст подсказки
	_GUICtrlStatusBar_SetTipText ($hStatus, 0, "Подсказка появляется, когда только иконка в части или текст превышают часть")
	_GUICtrlStatusBar_SetTipText ($hStatus, 1, "Заставляет появляться подсказку, когда текст больше чем вместимость прямоугольника")

	MemoWrite("Удерживайте курсор мыши над частью для просмотра подсказки." & @CRLF)

	; Получает текст подсказки
	MemoWrite("Текст подсказки 1: " & _GUICtrlStatusBar_GetTipText ($hStatus, 0) & @CRLF)
	MemoWrite("Текст подсказки 2: " & _GUICtrlStatusBar_GetTipText ($hStatus, 1))

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

; Записывает строку в элемент для заметок
Func MemoWrite($sMessage = "")
	GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite