Функция GUICtrlCreateList

         Описание функции


GUICtrlCreateList

Создаёт List (список) в GUI.

GUICtrlCreateList ( "text", left, top [, width [, height [, style = -1 [, exStyle = -1 ]]]] )

Параметры

text Текст элемента
left Координата левого края. Если -1 - тогда координата в соответствии с GUICoordMode.
top Координата верхнего края. Если -1 - тогда координата в соответствии с GUICoordMode.
width [необязательный] Ширина элемента (по умолчанию предыдущее значение).
height [необязательный] Высота элемента (по умолчанию предыдущее значение).
style [необязательный] Стиль элемента. Смотрите Стили элементов GUI в приложении.

-1 - по умолчанию : $LBS_SORT, $WS_BORDER, $WS_VSCROLL
принудительный стиль : $WS_TABSTOP, $LBS_NOTIFY
exStyle [необязательный] Расширенный стиль элемента. Смотрите таблицу расширенных стилей.
-1 - по умолчанию : $WS_EX_CLIENTEDGE

Возвращаемое значение

Успех:Возвращает идентификатор (controlID) нового элемента.
Ошибка:Возвращает 0.

Примечания

Для получения параметров элемента смотрите GUICtrlRead.
Чтобы установить или изменить параметры элемента смотрите GUICtrlUpdate....

Элементы List могут быть установлены с помощью GUICtrlSetData
Чтобы ограничить горизонтальную прокрутку, используйте GUICtrlSetLimit
Чтобы объединить стили со стилем по умолчанию используйте BitOR($GUI_SS_DEFAULT_LIST, новый стиль,...).

Чтобы использовать параметры, указанные выше, вы должны включить в ваш скрипт #include <ListBoxConstants.au3>.

По умолчанию стиль изменения размеров $GUI_DOCKAUTO (размер и позиция изменяются пропорционально).

См. также

GUICoordMode (Опция), GUICtrlSetData, GUICtrlSetLimit, GUICtrlUpdate..., GUIGetMsg

Пример

#include <ListBoxConstants.au3>
#include <GUIConstantsEx.au3>

Local $Message = "Следующие кнопки были нажаты"
Local $hGUI, $add, $clear, $mylist, $msg, $index, $read, $setsel, $count, $select, $find_string, $del_item, $insert, $color, $tmp

$hGUI = 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()

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        ; Case $close
            ; MsgBox(4096, "", "Нажата кнопка закрытия", 2)
            ; Exit
        Case $add
            GUICtrlSetData($mylist, "Нажата кнопка ""Добавить""|")
        Case $clear
            GUICtrlSetData($mylist, "")
        Case $index
            $tmp = GUICtrlSendMsg($mylist, $LB_GETCURSEL, 0, 0)
            MsgBox(4096, 'Текст выделенного пункта', $tmp, 0, $hGUI)
        Case $read
            $tmp = GUICtrlRead($mylist)
            MsgBox(4096, 'Текст выделенного пункта в списке', $tmp, 0, $hGUI)
        Case $setsel
            GUICtrlSendMsg($mylist, $LB_SETCURSEL, 4, 0)
        Case $count
            $tmp = GUICtrlSendMsg($mylist, $LB_GETCOUNT, 0, 0)
            MsgBox(4096, 'Количество пунктов в списке', $tmp, 0, $hGUI)
        Case $select
            GUICtrlSendMsg($mylist, $LB_SELECTSTRING, 0, 'Пункт 1')
        Case $find_string
            $tmp = GUICtrlSendMsg($mylist, $LB_FINDSTRINGEXACT, 0, 'Пункт 3')
            MsgBox(4096, 'Найдена точная строка в списке - Пункт 3', 'Индекс = ' & $tmp, 0, $hGUI)
        Case $del_item
            $tmp = GUICtrlSendMsg($mylist, $LB_DELETESTRING, 3, 0)
        Case $insert
            GUICtrlSendMsg($mylist, $LB_INSERTSTRING, 3, 'Вставлен в позицию 3')
        Case $color
            GUICtrlSetBkColor($mylist, 0xCCCC99)
    EndSwitch
WEnd