_GUICtrlListBox_Create
Создаёт элемент ListBox
#include <GuiListBox.au3>
_GUICtrlListBox_Create($hWnd, $sText, $iX, $iY [, $iWidth = 100 [, $iHeight = 200 [, $iStyle = 0x00B00002 [, $iExStyle = 0x00000200]]]])
Параметры
$hWnd | Дескриптор родительского окна или окна владельца |
$sText |
Строка для добавления |
$iX |
Координата левого края |
$iY |
Координата верхнего края |
$iWidth |
[необязательный] Ширина элемента |
$iHeight |
[необязательный] Высота элемента |
$iStyle |
[необязательный] Стиль элемента: $LBS_COMBOBOX - Уведомляет ListBox, что он является частью ComboBox $LBS_DISABLENOSCROLL - Отображает скрытую вертикальную полосу прокрутки, даже если список содержит недостаточное количество пунктов, чтобы прокручивать. $LBS_EXTENDEDSEL - Позволяет выбрать несколько пунктов одновременно. $LBS_HASSTRINGS - Указывает, что список содержит пункты, состоящие из строк, и позволяет получить текст строки, используя сообщение LB_GETTEXT $LBS_MULTICOLUMN - Список из нескольких колонок, который можно прокручивать по горизонтали. $LBS_MULTIPLESEL - Позволяет выбрать несколько пунктов. При каждом клике на пункте выполняется инвертирование выбора. $LBS_NODATA - Определяет ListBox без данных $LBS_NOINTEGRALHEIGHT - Список точно указанной высоты. Без этого стиля элемент подстраивает свою высоту кратно высоте строк, не допуская частичного отображения строки. $LBS_NOREDRAW - Определяет, что ListBox не обновляется, при внесении изменений $LBS_NOSEL - Разрешает просматривать пункты в ListBox, но не позволяет выбрать их. $LBS_NOTIFY - Уведомляет родительское окно при каждом одинарном или двойном клике на пункте. $LBS_OWNERDRAWFIXED - Определяет, что владелец списка ответственен за прорисовку его содержания, и что пункты в списке равной высоты. $LBS_OWNERDRAWVARIABLE - Определяет, что владелец списка ответственен за прорисовку его содержания, и что пункты в списке разной высоты. $LBS_SORT - Пункты в списке сортируются по алфавиту. $LBS_STANDARD - Стандартный стиль. Содержит стили LBS_NOTIFY, LBS_SORT, WS_VSCROLL, WS_BORDER $LBS_USETABSTOPS - Разрешает распознавание Tab (табуляции) в строке пункта. $LBS_WANTKEYBOARDINPUT - Указывает, что владелец списка получает сообщение WM_VKEYTOITEM |
По умолчанию: $LBS_SORT, $WS_HSCROLL, $WS_VSCROLL, $WS_BORDER Принудительно: $WS_CHILD, $WS_TABSTOP, $WS_VISIBLE, $LBS_NOTIFY | |
$iExStyle |
[необязательный] Расширенный стиль элемента. Соответствует стандартным константам $WS_EX_. По умолчанию: $WS_EX_CLIENTEDGE |
Возвращаемое значение
Успех: | Возвращает дескриптор элемента ListBox |
Ошибка: | Возвращает 0 |
Примечания
Эта функция предназначена для опытных пользователей и для изучения того, как элемент работает.См. также
_GUICtrlListBox_DestroyПример
#include <GuiListBox.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>
$Debug_LB = False ; Проверяет ClassName передаваемый в ListBox функции. Установите True и используйте дескриптор от другого элемента, чтобы увидеть как это работает
Global $hListBox
_Main()
Func _Main()
Local $hGUI
; Создаёт GUI
$hGUI = GUICreate("Создаёт ListBox с помощью UDF", 400, 296)
$hListBox = _GUICtrlListBox_Create($hGUI, "Строка при создании", 2, 2, 396, 296)
GUISetState()
MsgBox(4160, "Информация", "Добавление пунктов")
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
; Добавляет файлы
_GUICtrlListBox_BeginUpdate($hListBox)
_GUICtrlListBox_ResetContent($hListBox)
_GUICtrlListBox_InitStorage($hListBox, 100, 4096)
_GUICtrlListBox_Dir($hListBox, @WindowsDir & "\win*.exe")
_GUICtrlListBox_AddFile($hListBox, @WindowsDir & "\Notepad.exe")
_GUICtrlListBox_Dir($hListBox, "", $DDL_DRIVES)
_GUICtrlListBox_Dir($hListBox, "", $DDL_DRIVES, False)
_GUICtrlListBox_EndUpdate($hListBox)
; Цикл выполняется, пока окно не будет закрыто
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc ;==>_Main
Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
#forceref $hWnd, $iMsg
Local $hWndFrom, $iIDFrom, $iCode, $hWndListBox
If Not IsHWnd($hListBox) Then $hWndListBox = GUICtrlGetHandle($hListBox)
$hWndFrom = $ilParam
$iIDFrom = BitAND($iwParam, 0xFFFF) ; младшее слово
$iCode = BitShift($iwParam, 16) ; старшее слово
Switch $hWndFrom
Case $hListBox, $hWndListBox
Switch $iCode
Case $LBN_DBLCLK ; Высылается, когда пользователь сделал двойной клик на строке ListBox
_DebugPrint("$LBN_DBLCLK" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
"-->IDFrom:" & @TAB & $iIDFrom & @LF & _
"-->Code:" & @TAB & $iCode)
; Нет возвращаемых значений
Case $LBN_ERRSPACE ; Высылается, когда ListBox не может выделить достаточно памяти для выполнения определённого запроса
_DebugPrint("$LBN_ERRSPACE" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
"-->IDFrom:" & @TAB & $iIDFrom & @LF & _
"-->Code:" & @TAB & $iCode)
; Нет возвращаемых значений
Case $LBN_KILLFOCUS ; Высылается, когда ListBox теряет фокус
_DebugPrint("$LBN_KILLFOCUS" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
"-->IDFrom:" & @TAB & $iIDFrom & @LF & _
"-->Code:" & @TAB & $iCode)
; Нет возвращаемых значений
Case $LBN_SELCANCEL ; Высылается, когда пользователь отменяет выбор в ListBox
_DebugPrint("$LBN_SELCANCEL" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
"-->IDFrom:" & @TAB & $iIDFrom & @LF & _
"-->Code:" & @TAB & $iCode)
; Нет возвращаемых значений
Case $LBN_SELCHANGE ; Высылается, когда выбор в ListBox изменяется
_DebugPrint("$LBN_SELCHANGE" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
"-->IDFrom:" & @TAB & $iIDFrom & @LF & _
"-->Code:" & @TAB & $iCode)
; Нет возвращаемых значений
Case $LBN_SETFOCUS ; Высылается, когда ListBox получает фокус
_DebugPrint("$LBN_SETFOCUS" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
"-->IDFrom:" & @TAB & $iIDFrom & @LF & _
"-->Code:" & @TAB & $iCode)
; Нет возвращаемых значений
EndSwitch
EndSwitch
; Продолжение обработчика внутренних команд AutoIt3.
; Вы также можете завершить, используя строку с выходом из функции.
; !!! Но только 'Return' (без значения) без продолжения
; обработчика внутренних команд AutoIt3 в дальнейшем !!!
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_COMMAND
Func _DebugPrint($s_text)
$s_text = StringReplace($s_text, @LF, @LF & "-->")
ConsoleWrite("!===========================================================" & @LF & _
"+===========================================================" & @LF & _
"-->" & $s_text & @LF & _
"+===========================================================" & @LF)
EndFunc ;==>_DebugPrint