#include <GUIConstantsEx.au3>
#include <GuiTreeView.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
_Main()
Func _Main()
Local $hGUI, $hTreeView, $hItem, $iCount, $aChecked[1] = [0], $iBtn
Local $iStyle = BitOR($TVS_EDITLABELS, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS, $TVS_CHECKBOXES)
$hGUI = GUICreate('Создание TreeView', 400, 310)
$iBtn = GUICtrlCreateButton('Click me', 150, 275, 100, 30)
$hTreeView = _GUICtrlTreeView_Create($hGUI, 2, 2, 396, 268, $iStyle, $WS_EX_CLIENTEDGE)
GUISetState()
_GUICtrlTreeView_BeginUpdate($hTreeView)
For $x = 1 To Random(2, 10, 1)
$hItem = _GUICtrlTreeView_Add($hTreeView, 0, StringFormat('[%02d] Пункт', $x))
For $y = 1 To Random(2, 10, 1)
_GUICtrlTreeView_AddChild($hTreeView, $hItem, StringFormat('[%02d-%02d] Дочерний', $y, $x))
Next
Next
$hItem = 0
_GUICtrlTreeView_EndUpdate($hTreeView)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $iBtn
$iCount = _GUICtrlTreeView_GetCount($hTreeView)
ReDim $aChecked[$iCount + 1]
$hItem = _GUICtrlTreeView_GetFirstItem($hTreeView)
If _GUICtrlTreeView_GetChecked($hTreeView, $hItem) Then
$aChecked[0] += 1
$aChecked[$aChecked[0]] = _GUICtrlTreeView_GetText($hTreeView, $hItem)
EndIf
For $i = 1 To $iCount - 1
$hItem = _GUICtrlTreeView_GetNext($hTreeView, $hItem)
If _GUICtrlTreeView_GetChecked($hTreeView, $hItem) Then
$aChecked[0] += 1
$aChecked[$aChecked[0]] = _GUICtrlTreeView_GetText($hTreeView, $hItem)
EndIf
Next
If $aChecked[0] <> $iCount Then ReDim $aChecked[$aChecked[0] + 1]
_ArrayDisplay($aChecked)
$iCount = 0
$hItem = 0
ReDim $aChecked[1]
$aChecked[0] = 0
EndSwitch
WEnd
GUIDelete()
EndFunc ;==>_Main