# Function Reference

GUICtrlCreateTreeView

Creates a TreeView control for the GUI.

GUICtrlCreateTreeView ( left, top [, width [, height [, style [, exStyle]]]] )

Parameters

left | The left side of the control. If -1 is used then left will be computed according to GUICoordMode.
top | The top of the control. If -1 is used then top will be computed according to GUICoordMode.
width | [optional] The width of the control (default is the previously used width).
height | [optional] The height of the control (default is the previously used height).
style | [optional] Defines the style of the control. See GUI Control Styles Appendix. default (-1) : $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS forced style : $WS_TABSTOP
exStyle | [optional] Defines the extended style of the control. See Extended Style Table.

Return Value

Success: | Returns the identifier (controlID) of the new control.
Failure: | Returns 0.

Remarks

To set or change information in the control see GUICtrlSet....
To combine styles with the default style use BitOr($GUI_SS_DEFAULT_TREEVIEW, newstyle,...).

Related

GUICtrlCreateTreeViewItem, GUICoordMode (Option), GUICtrlSet..., GUIGetMsg, GUICtrlRead

Example

#include <GUIConstants.au3>
GUICreate("My GUI with 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("General", $treeview)
GUICtrlSetColor(-1, 0x0000C0)
$displayitem = GUICtrlCreateTreeViewitem("Display", $treeview)
GUICtrlSetColor(-1, 0x0000C0)
$aboutitem = GUICtrlCreateTreeViewitem("About", $generalitem)
$compitem = GUICtrlCreateTreeViewitem("Computer", $generalitem)
$useritem = GUICtrlCreateTreeViewitem("User", $generalitem)
$resitem = GUICtrlCreateTreeViewitem("Resolution", $displayitem)
$otheritem = GUICtrlCreateTreeViewitem("Other", $displayitem)
$startlabel = GUICtrlCreateLabel("TreeView Demo",190,90,100,20)
$aboutlabel = GUICtrlCreateLabel("This little scripts demonstates the using of a treeview-control.", 190, 70, 100, 60)
GUICtrlSetState(-1, $GUI_HIDE) ; Hides the "aboutlabel"-text during initialization
$compinfo = GUICtrlCreateLabel("Name:" & @TAB & @ComputerName & @LF & "OS:" & @TAB & @OSVersion & @LF & "SP:" & @TAB & @OSServicePack, 120, 30, 200, 80)
GUICtrlSetState(-1, $GUI_HIDE) ; Hides the "compinfo"-text during initialization
GUICtrlCreateLabel("", 0, 170, 350, 2, $SS_SUNKEN)
$togglebutton = GUICtrlCreateButton("&Toggle", 35, 185, 70, 20)
$infobutton = GUICtrlCreateButton("&Info", 105, 185, 70, 20)
$statebutton = GUICtrlCreateButton("Col./Exp.", 175, 185, 70, 20)
$cancelbutton = GUICtrlCreateButton("&Cancel", 245, 185, 70, 20)
GUICtrlSetState($generalitem, BitOr($GUI_EXPAND,$GUI_DEFBUTTON)) ; Expand the "General"-item and paint in bold
GUICtrlSetState($displayitem, BitOr($GUI_EXPAND,$GUI_DEFBUTTON)) ; Expand the "Display"-item and paint in bold
GUISetState ()
While 1
$msg = GUIGetMsg()
Select
Case $msg = $cancelbutton Or $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $togglebutton ; Toggle the bold painting
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) ; Get the controlID of the current selected treeview item
If $item = 0 Then
MsgBox(64, "TreeView Demo", "No item currently selected")
Else
$text = GUICtrlRead($item, 1) ; Get the text of the treeview item
If $text == "" Then
MsgBox(16, "Error", "Error while retrieving infos about item")
Else
MsgBox(64, "TreeView Demo", "Current item selected is: " & $text) ; $advmsg[0] contains the text and $advmsg[1] the state value of the treeview item
EndIf
EndIf
Case $msg = $statebutton
$item = GUICtrlRead($treeview)
If $item > 0 Then
$hItem = GUICtrlGetHandle($item)
GuiCtrlSendMsg($treeview, $TVM_EXPAND, $TVE_TOGGLE, $hItem)
EndIf
; The following items will hide the other labels (1st and 2nd parameter) and then show the 'own' labels (3rd and 4th parameter)
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()
Exit
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