# Function Reference

# ControlTreeView

Sends a command to a TreeView32 control.

ControlTreeView ( "title", "text", controlID, "command" [, option1] )

## Parameters

title | The title/hWnd/class of the window to access. See Title special definition.
text | The text of the window to access. See Text special definition.
controlID | The control to interact with. See Controls.
command | The command to send to the control (see below).
option1 | [optional] Additional parameter required by some commands.

## Return Value

Return depends on the command as table below shows. In case of an error (such as an invalid command or window/control could not be found) then @error is set to 1.

Command, Option1 | Operation
"Check", "item" | Checks an item (if the item supports it).
"Collapse", "item" | Collapses an item to hide its children.
"Exists", "item" | Returns 1 if an item exists, otherwise 0.
"Expand", "item" | Expands an item to show its children.
"GetItemCount", "item" | Returns the number of children for a selected item.
"GetSelected" [, UseIndex] | Returns the item reference of the current selection using the text reference of the item (or index reference if UseIndex is set to 1).
"GetText", "item" | Returns the text of an item.
"IsChecked" | Returns the state of an item. 1:checked, 0:unchecked, -1:not a checkbox.
"Select", "item" | Selects an item.
"Uncheck", "item" | Unchecks an item (if the item supports it).

The "item" parameter is a string-based parameter that is used to reference a particular treeview item using a combination of text and indices. Indices are 0-based. For example:
Heading1
----> H1SubItem1
----> H1SubItem2
----> H1SubItem3
----> ----> H1S1SubItem1
Heading2
Heading3
Each "level" is separated by |. An index is preceded with #. Examples:

Item | Item Reference
--- | ---
Heading2 | "Heading2" or "#1"
H1SubItem2 | "Heading1|H1SubItem2" or "#0|#1"
H1S1SubItem1 | "Heading1|H1SubItem3|H1S1SubItem1" or "#0|#2|#0"

## Remarks

As AutoIt is a 32-bit application some commands are not available when referencing a 64-bit application as Explorer when running on 64-bit Windows.

## Related

ControlCommand

## Example

    #include <GUIConstantsEx.au3>
    #include <TreeViewConstants.au3>
    #include <WindowsStylesConstants.au3>

    Example()

    Func Example()
        Local $hGUI = GUICreate("ControlTreeView Example", 212, 212)
        Local $idTreeView_1 = GUICtrlCreateTreeView(6, 6, 200, 160, BitOR($TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_CHECKBOXES), $WS_EX_CLIENTEDGE)
        Local $hTreeView_1 = ControlGetHandle($hGUI, "", $idTreeView_1)

        Local $idTVi_Root = GUICtrlCreateTreeViewItem("Root", $idTreeView_1)
        GUICtrlCreateTreeViewItem("Item 1", $idTVi_Root)
        GUICtrlCreateTreeViewItem("Item 2", $idTVi_Root)
        GUICtrlCreateTreeViewItem("Item 3", $idTVi_Root)
        Local $idTVi_Item_4 = GUICtrlCreateTreeViewItem("Item 4", $idTVi_Root)
        GUICtrlCreateTreeViewItem("Item 4.1", $idTVi_Item_4)
        GUICtrlCreateTreeViewItem("Item 4.2", $idTVi_Item_4)
        GUICtrlCreateTreeViewItem("Item 5", $idTVi_Root)

        GUISetState(@SW_SHOW, $hGUI)

        ControlTreeView($hGUI, "", $hTreeView_1, "Expand", "Root")

        ControlTreeView($hGUI, "", $hTreeView_1, "Exists", "Root|Item 4")
        ControlTreeView($hGUI, "", $hTreeView_1, "Check", "Root|Item 4")
        ControlTreeView($hGUI, "", $hTreeView_1, "Select", "Root|Item 4")
        ControlTreeView($hGUI, "", $hTreeView_1, "Expand", "Root|Item 4")

        While 1
            Switch GUIGetMsg()
                Case $GUI_EVENT_CLOSE
                    ExitLoop
            EndSwitch
        WEnd

        GUIDelete($hGUI)
    EndFunc   ;==>Example