#include <GUIConstantsEx.au3>
#include <GUIToolTip.au3>

Example()

Func Example()
	Local $hGUI, $hToolTip1, $hToolTip2, $iAdd, $iClear, $iClose, $iMylist, $hAdd, $hClear, $hClose, $hMylist

	$hGUI = GUICreate(StringTrimRight(@ScriptName, 4), 270, 200)

	$iAdd = GUICtrlCreateButton("Добавить", 30, 32, 75, 25)
	$hAdd = GUICtrlGetHandle(-1) ; Получает дескриптор элемента, чтобы использовать для ToolTip
	$iClear = GUICtrlCreateButton("Очистить", 30, 72, 75, 25)
	$hClear = GUICtrlGetHandle($iClear)
	$iMylist = GUICtrlCreateList("Пункт 1", 120, 32, 121, 97)
	$hMylist = GUICtrlGetHandle($iMylist)
	$iClose = GUICtrlCreateButton("Кнопка выхода", 80, 150, 110, 28)
	$hClose = GUICtrlGetHandle($iClose)

	$hToolTip1 = _GUIToolTip_Create($hGUI, $TTS_BALLOON) ; Создаёт стиль овальной подсказки
	$hToolTip2 = _GUIToolTip_Create($hGUI, $TTS_BALLOON)
	; Устанавливает цвет для $hToolTip2
	_GUIToolTip_SetTipBkColor($hToolTip1, 0x395A00) ; Цвет фона (BGR) всплывающей подсказки
	_GUIToolTip_SetTipTextColor($hToolTip1, 0x1EBFFF) ; Цвет текста (BGR) всплывающей подсказки

	; Выключает использование темы Windows, иначе установка цвета не работает
	; DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", $hToolTip1, "wstr", 0, "wstr", 0)

	; Устанавливает ширину ToolTip
	; Позволяет отображать текст с переносом строки. Иначе @CRLF не будет иметь эффекта
	_GUIToolTip_SetMaxTipWidth($hToolTip1, 400)
	_GUIToolTip_SetMaxTipWidth($hToolTip2, 400)

	; Назначает подсказку элементу
	_GUIToolTip_AddTool($hToolTip1, 0, "Добавляет пункт в список" & @CRLF & "Нужно кликнуть кнопку", $hAdd, 0, 0, 0, 0, 9)
	_GUIToolTip_AddTool($hToolTip1, 0, "Это кнопка завершения скрипта", $hClose, 0, 0, 0, 0, 9)
	_GUIToolTip_AddTool($hToolTip1, 0, "Это ListBox", $hMylist, 0, 0, 0, 0, 9)
	_GUIToolTip_AddTool($hToolTip2, 0, "Очищает список" & @CRLF & "Нужно кликнуть кнопку", $hClear, 0, 0, 0, 0, 9)
	_GUIToolTip_AddTool($hToolTip2, 0, "Подсказка" & @CRLF & "для окна GUI", $hGUI, 0, 0, 0, 0, 9)
	GUISetState()

	While 1
		Switch GUIGetMsg()
			Case $iAdd
				GUICtrlSetData($iMylist, 'Нажата кнопка "Добавить"|')
			Case $iClear
				GUICtrlSetData($iMylist, '')
			Case $iClose
				MsgBox(0, '', 'Была нажата кнопка закрытия', 2)
				Exit
			Case $GUI_EVENT_CLOSE
				Exit
		EndSwitch
	WEnd
EndFunc   ;==>Example