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


GUICtrlCreateListView

Создаёт ListView в GUI.

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

Параметры

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

-1 - по умолчанию : $LVS_SHOWSELALWAYS, $LVS_SINGLESEL
принудительный стиль : $LVS_REPORT
exStyle [необязательный] Расширенный стиль элемента. Смотрите таблицу расширенных стилей или таблицу расширенных стилей ListView.
-1 - по умолчанию : $LVS_EX_FULLROWSELECT, $WS_EX_CLIENTEDGE

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

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

Примечания

Чтобы добавить пункты в ListView, используйте GUICtrlCreateListViewItem
По умолчанию ListView отображается как в Explorer вид "Таблица" ($LVS_REPORT принудительный стиль).
Вы можете контролировать ширину колонки, заполняя заголовок колонки пробелами. Колонка может быть расширена с помощью GUICtrlCreateListViewItem в соответствии с размером пункта. Размер колонки будет примерно до 25 символов. Размер не изменяется при использовании GUICtrlSetData.

Чтобы создать ListView с иконками или маленькими иконками или список-стиль просто используйте после создания:
GUICtrlSetStyle со стилями $LVS_ICON, $LVS_LIST или $LVS_SMALLICON.

Сортировка списка, кликнув на имя колонки (как в Explorer) в настоящее время не осуществляется.

Чтобы вся строка была визуально выделена, используйте расширенный стиль $LVS_EX_FULLROWSELECT.

Чтобы объединить стили со стилем по умолчанию используйте BitOR($GUI_SS_DEFAULT_LISTVIEW, новый стиль,...).

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

Специальный флаг $GUI_BKCOLOR_LV_ALTERNATE может быть использован с элементом Listview чтобы дать альтернативный фон пунктам ListviewItems.
Нечётные строки получите установкой цвета GUICtrlSetBkColor для Listview.
Чётные строки получите установкой цвета GUICtrlSetBkColor для ListviewItem.

Если при добавлении стиля $LVS_EX_CHECKBOXES у вас отсутствуют границы, то добавьте стиль $WS_EX_CLIENTEDGE

См. также

GUICtrlCreateListViewItem, GUICtrlRegisterListViewSort, GUICoordMode (Опция), GUICtrlSetData, GUIGetMsg, GUIDataSeparatorChar (Опция)

Пример

#include <ListViewConstants.au3>
#include <GUIConstantsEx.au3>

Local $hGUI, $ListView, $button, $item1, $item2, $item3, $msg, $clear, $width

$hGUI = GUICreate("ListView", 240, 260, 100, 200)
GUISetBkColor(0xd5d2af) ; устанавливает цвет фона Gui

$ListView = GUICtrlCreateListView("Колонка1|кол2|кол3  ", 10, 10, 220, 150);,$LVS_SORTDESCENDING)
GUICtrlSetBkColor(-1, 0xFFFEEE) ; устанавливает цвет фона ListView
$item1 = GUICtrlCreateListViewItem("пункт2|кол22|кол23", $ListView)
$item2 = GUICtrlCreateListViewItem("пункт1|кол12|кол13", $ListView)
GUICtrlSetImage(-1, @SystemDir & '\shell32.dll', 6, 0) ; устанавливает иконку пункту
$item3 = GUICtrlCreateListViewItem("пункт3|кол32|кол33", $ListView)
GUICtrlSetImage(-1, @SystemDir & '\shell32.dll', 4, 0)

$button = GUICtrlCreateButton("Текст выбранной строки", 45, 170, 150, 25)
$width = GUICtrlCreateButton("Установить ширину колонок", 35, 200, 170, 25)
$clear = GUICtrlCreateButton("Очистить", 85, 230, 70, 25)

GUISetState()

GUICtrlSetData($item2, "ПУНКТ1")
GUICtrlSetData($item3, "||КОЛ33")
GUICtrlDelete($item1)

While 1
    Switch GUIGetMsg()
        Case $button
            MsgBox(0, "Текст выбранной строки", GUICtrlRead(GUICtrlRead($ListView)), 2, $hGUI)
        Case $clear
            GUICtrlSendMsg($ListView, $LVM_DELETEALLITEMS, 0, 0)
        Case $width
            GUICtrlSendMsg($ListView, $LVM_SETCOLUMNWIDTH, 0, 80) ; 80 пиксель. Если -1 ($LVSCW_AUTOSIZE), то устанавливает по длине текста.
            GUICtrlSendMsg($ListView, $LVM_SETCOLUMNWIDTH, 1, 55) ; Если -2 ($LVSCW_AUTOSIZE_USEHEADER), то по длине текста в заголовка колонки, но не менее текста пунктов
            GUICtrlSendMsg($ListView, $LVM_SETCOLUMNWIDTH, 2, 60) ; 60 пиксель. Если последняя колонка -2, то до правого края ListView
        Case $ListView
            MsgBox(4096, "ListView", "колонка=" & GUICtrlGetState($ListView), 2, $hGUI)
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd