GUICtrlCreateTreeView
Создаёт TreeView (древовидное меню) в GUI.
GUICtrlCreateTreeView ( left, top [, width [, height [, style = -1 [, exStyle = -1 ]]]] )
Параметры
left | Координата левого края. Если -1 - тогда координата в соответствии с GUICoordMode. |
top |
Координата верхнего края. Если -1 - тогда координата в соответствии с GUICoordMode. |
width |
[необязательный] Ширина элемента (по умолчанию предыдущее значение). |
height |
[необязательный] Высота элемента (по умолчанию предыдущее значение). |
style |
[необязательный] Стиль элемента. Смотрите Стили элементов GUI в приложении. -1 - по умолчанию : $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS принудительный стиль : $WS_TABSTOP |
exStyle |
[необязательный] Расширенный стиль элемента. Смотрите таблицу расширенных стилей. |
Возвращаемое значение
Успех: | Возвращает идентификатор (controlID) нового элемента. |
Ошибка: | Возвращает 0. |
Примечания
Чтобы установить или изменить параметры элемента смотрите GUICtrlUpdate....См. также
GUICtrlCreateTreeViewItem, GUICoordMode (Опция), GUICtrlUpdate..., GUIGetMsg, GUICtrlReadПример
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <TreeViewConstants.au3>
#include <StaticConstants.au3>
Example()
Func Example()
Local $hGui, $treeview, $generalitem, $displayitem, $aboutitem, $compitem
Local $useritem, $resitem, $otheritem, $startlabel, $aboutlabel, $compinfo
Local $togglebutton, $infobutton, $statebutton, $cancelbutton
Local $msg, $item, $hItem, $text
$hGui = GUICreate("Мой GUI с TreeView", 350, 215)
$treeview = GUICtrlCreateTreeView(6, 6, 100, 150, BitOR($TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE)
$generalitem = GUICtrlCreateTreeViewItem("Основное", $treeview)
GUICtrlSetColor(-1, 0x0000C0)
$displayitem = GUICtrlCreateTreeViewItem("Отображение", $treeview)
GUICtrlSetColor(-1, 0x0000C0)
$aboutitem = GUICtrlCreateTreeViewItem("О скрипте", $generalitem)
$compitem = GUICtrlCreateTreeViewItem("Компьютер", $generalitem)
$useritem = GUICtrlCreateTreeViewItem("Пользователь", $generalitem)
$resitem = GUICtrlCreateTreeViewItem("Подписи", $displayitem)
$otheritem = GUICtrlCreateTreeViewItem("Иное", $displayitem)
$startlabel = GUICtrlCreateLabel("TreeView Демонстрация", 140, 90, 150, 20)
$aboutlabel = GUICtrlCreateLabel("Этот небольшой скрипт демонстрирует использование элемента TreeView.", 130, 20, 200, 120)
GUICtrlSetState(-1, $GUI_HIDE) ; Скрыть текст элемента "aboutlabel" в течение инициализации
$compinfo = GUICtrlCreateLabel("Имя:" & @TAB & @ComputerName & @LF & "OS:" & @TAB & @OSVersion & @LF & "SP:" & @TAB & @OSServicePack, 120, 30, 200, 80)
GUICtrlSetState(-1, $GUI_HIDE) ; Скрыть текст элемента "compinfo" в течение инициализации
GUICtrlCreateLabel("", 0, 170, 350, 2, $SS_SUNKEN)
$togglebutton = GUICtrlCreateButton("&Жирный", 35, 185, 70, 20)
$infobutton = GUICtrlCreateButton("&Инфо", 105, 185, 70, 20)
$statebutton = GUICtrlCreateButton("+/-", 175, 185, 70, 20)
$cancelbutton = GUICtrlCreateButton("&Выход", 245, 185, 70, 20)
GUICtrlSetState($generalitem, BitOR($GUI_EXPAND, $GUI_DEFBUTTON)) ; Развернуть пункт "Основное" и отрисовать жирным шрифтом
GUICtrlSetState($displayitem, BitOR($GUI_EXPAND, $GUI_DEFBUTTON)) ; Развернуть пункт "Отображение" и отрисовать жирным шрифтом
GUISetState()
While 1
$msg = GUIGetMsg()
Select ; рекомендуется использовать Switch вместо Select
Case $msg = $cancelbutton Or $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $togglebutton ; Переключить отрисовку жирного шрифта
If BitAND(GUICtrlRead($generalitem), $GUI_DEFBUTTON) Then
GUICtrlSetState($generalitem, 0)
GUICtrlSetState($displayitem, 0)
Else
GUICtrlSetState($generalitem, $GUI_DEFBUTTON)
GUICtrlSetState($displayitem, $GUI_DEFBUTTON)
EndIf
Case $msg = $infobutton
$item = GUICtrlRead($treeview) ; Получить идентификатор (ID) текущего выделенного пункта treeview
If $item = 0 Then
MsgBox(64, "TreeView Demo", "Нет текущего выделенного пункта", 0, $hGui)
Else
$text = GUICtrlRead($item, 1) ; Получить текст пункта treeview
If $text == "" Then
MsgBox(16, "Ошибка", "Ошибка при поиске информации о пункте", 0, $hGui)
Else
MsgBox(64, "TreeView Demo", "Текущий выделенный пункт: " & $text, 0, $hGui) ; $advmsg[0] содержит текст и $advmsg[1] значение состояния пункта treeview
EndIf
EndIf
Case $msg = $statebutton
$item = GUICtrlRead($treeview)
If $item > 0 Then
$hItem = GUICtrlGetHandle($item)
GUICtrlSendMsg($treeview, $TVM_EXPAND, $TVE_TOGGLE, $hItem)
EndIf
; Следующие пункты спрячут иные надписи (1-ый и 2-ый параметры) затем отобразятся собственные надписи (3-ий и 4-ый параметры)
Case $msg = $generalitem
GUIChangeItems($aboutlabel, $compinfo, $startlabel, $startlabel)
Case $msg = $aboutitem
GUICtrlSetState($compinfo, $GUI_HIDE)
GUIChangeItems($startlabel, $startlabel, $aboutlabel, $aboutlabel)
Case $msg = $compitem
GUIChangeItems($startlabel, $aboutlabel, $compinfo, $compinfo)
EndSelect
WEnd
GUIDelete()
EndFunc
Func GUIChangeItems($hidestart, $hideend, $showstart, $showend)
Local $idx
For $idx = $hidestart To $hideend
GUICtrlSetState($idx, $GUI_HIDE)
Next
For $idx = $showstart To $showend
GUICtrlSetState($idx, $GUI_SHOW)
Next
EndFunc