#include <ListBoxConstants.au3>
#include <GUIConstantsEx.au3>
Opt('MustDeclareVars', 1)
Example()
Func Example()
Local $MESSAGE = "Следующие кнопки были нажаты"
Local $add, $clear, $mylist, $close, $msg, $index, $read, $setsel, $count, $select, $find_string, $del_item, $insert, $color, $tmp
GUICreate("GUI с элементом списка - list") ; Создаёт окно в центре экрана
$read = GUICtrlCreateButton("Текст пункта", 40, 30, 121, 25)
$index = GUICtrlCreateButton("Индекс выделенного", 40, 60, 121, 25)
$setsel = GUICtrlCreateButton("Выделить пункт 4", 40, 90, 121, 25)
$select = GUICtrlCreateButton("Выделить Пункт1", 40, 120, 121, 25)
$find_string = GUICtrlCreateButton("Найти строку Пункт 3", 40, 150, 121, 25)
$del_item = GUICtrlCreateButton("Удалить строку 3", 40, 180, 121, 25)
$count = GUICtrlCreateButton("Количество пунктов", 40, 210, 121, 25)
$add = GUICtrlCreateButton("Добавить пункт", 40, 240, 121, 25)
$insert = GUICtrlCreateButton("Вставить в позицию", 40, 270, 121, 25)
$color = GUICtrlCreateButton("Изменить цвет", 40, 300, 121, 25)
$clear = GUICtrlCreateButton("Очистить список", 40, 330, 121, 25)
$mylist = GUICtrlCreateList("Отсчёт пунктов с 0", 180, 30, 190, 100, $GUI_SS_DEFAULT_LIST+$LBS_NOINTEGRALHEIGHT)
; стиль LBS_NOINTEGRALHEIGHT предотвращает изменение высоты кратно высоте пункта
; чтобы отключить сортировку в списке ипользуйте стиль $WS_BORDER+$WS_VSCROLL+$LBS_NOINTEGRALHEIGHT
GUICtrlSetLimit(-1, 200) ; ограничить прокрутку по горизонтали
GUICtrlSetData(-1, $MESSAGE)
GUICtrlSetData(-1, 'Пункт 1|Пункт 2|Пункт 3|Текст', 'Пункт 2')
$close = GUICtrlCreateButton("моя кнопка выхода", 180, 140, 190, 25)
GUISetState()
$msg = 0
While $msg <> $GUI_EVENT_CLOSE
$msg = GUIGetMsg()
Select
Case $msg = $add
GUICtrlSetData($mylist, "Нажата кнопка ""Добавить""|")
Case $msg = $clear
GUICtrlSetData($mylist, "")
Case $msg = $index
$tmp=GUICtrlSendMsg($mylist, $LB_GETCURSEL, 0, 0)
MsgBox(0, 'Текст выделенного пункта', $tmp)
Case $msg = $read
$tmp=GUICtrlRead($mylist)
MsgBox(0, 'Текст выделенного пункта в списке', $tmp)
Case $msg = $setsel
GUICtrlSendMsg($mylist, $LB_SETCURSEL, 4, 0)
Case $msg = $count
$tmp=GUICtrlSendMsg($mylist, $LB_GETCOUNT, 0, 0)
MsgBox(0, 'Количество пунктов в списке', $tmp)
Case $msg = $select
GUICtrlSendMsg($mylist, $LB_SELECTSTRING, 0, 'Пункт 1')
Case $msg = $find_string
$tmp=GUICtrlSendMsg($mylist, $LB_FINDSTRINGEXACT, 0, 'Пункт 3')
MsgBox(0, 'Найдена точная строка в списке - Пункт 3', 'Индекс = '&$tmp)
Case $msg = $del_item
$tmp=GUICtrlSendMsg($mylist, $LB_DELETESTRING, 3, 0)
Case $msg = $insert
GUICtrlSendMsg($mylist, $LB_INSERTSTRING, 3, 'Вставлен в позицию 3')
Case $msg = $color
GUICtrlSetBkColor($mylist, 0xCCCC99)
Case $msg = $close
MsgBox(0, "", "Нажата кнопка закрытия", 2)
Exit
EndSelect
WEnd
EndFunc