Функция GUICtrlCreateTreeViewItem

         Описание функции


GUICtrlCreateTreeViewItem

Создаёт TreeViewItem (пункт / меню в древовидном меню) в GUI.

GUICtrlCreateTreeViewItem ( "text", treeviewID )

Параметры

text Текст элемента
treeviewID Идентификатор TreeView (основного дерева) или созданного TreeViewItem (поддерева).

Возвращаемое значение

Успех:Возвращает идентификатор (controlID) нового элемента.
Ошибка:Возвращает 0.

Примечания

Для дополнительной информации о настройках смотрите GUICtrlUpdate....

Чтобы отображать пункты TreeView жирным шрифтом (показать, как по умолчанию) используйте GUICtrlSetState($treeviewItem, $GUI_DEFBUTTON),
Чтобы отключить жирный шрифт используйте GUICtrlSetState() с другим значением, не $GUI_DEFBUTTON, например GUICtrlSetState($treeviewItem, 0).

Чтобы развернуть пункт TreeView используйте GUICtrlSetState($treeviewItem, $GUI_EXPAND).

Чтобы выбрать определенный пункт TreeView используйте GUICtrlSetState($treeviewItem, $GUI_FOCUS).

См. также

GUICtrlCreateTreeView, GUICtrlUpdate..., GUIGetMsg, GUICtrlRead, GUICtrlGetHandle

Пример

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

Opt('GUIResizeMode', 802) ; по умолчанию не изменять размеры и позицию элементов
$hGui = GUICreate("Демонстрация GUICtrlCreateTreeView", 640, 410, -1, -1, $WS_OVERLAPPEDWINDOW) ; стиль изменения размера окна

$treeview = GUICtrlCreateTreeView(5, 35, 200, 370, BitOR($TVS_TRACKSELECT, $TVS_SINGLEEXPAND, $TVS_FULLROWSELECT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE)
GUICtrlSetResizing(-1, 2 + 32 + 64 + 256)
$tree1 = GUICtrlCreateTreeViewItem("Тексты", $treeview)
GUICtrlSetColor(-1, 0x0000C0)
$item1 = GUICtrlCreateTreeViewItem("текст1", $tree1)
$item2 = GUICtrlCreateTreeViewItem("текст2", $tree1)
$item3 = GUICtrlCreateTreeViewItem("текст3", $tree1)

$tree2 = GUICtrlCreateTreeViewItem("Справочники", $treeview)
GUICtrlSetColor(-1, 0x0000C0)
$item4 = GUICtrlCreateTreeViewItem("справочник1", $tree2)
$item5 = GUICtrlCreateTreeViewItem("справочник2", $tree2)
$item6 = GUICtrlCreateTreeViewItem("Подробности", $item4)
$item7 = GUICtrlCreateTreeViewItem("Описание", $item4)

$Edit = GUICtrlCreateEdit("Демонстрация работы GUICtrlCreateTreeView", 210, 35, 425, 370, 0x1000 + 0x0004)
GUICtrlSetResizing(-1, 2 + 4 + 32 + 64)
$Text1 = 'TreeView может иметь разные стили оформления. Например: ' & @CRLF & '$TVS_FULLROWSELECT - выделяется вся строка пункта' & @CRLF & '$TVS_SINGLEEXPAND - развёрнут только один раздел' & @CRLF & '$TVS_TRACKSELECT - подчёркивать при наведении' & @CRLF & '$TVS_SHOWSELALWAYS - выделен при потере фокуса' & @CRLF & '$TVS_CHECKBOXES - пункты с галочками'
$Text2 = "Имя:" & @TAB & @ComputerName & @CRLF & "OS:" & @TAB & @OSVersion & @CRLF & "SP:" & @TAB & @OSServicePack
$Text3 = "Текущая дата " & @YEAR & "." & @MON & "." & @MDAY & "_" & @HOUR & "." & @MIN & "." & @SEC

$togglebutton = GUICtrlCreateButton("Ж", 5, 5, 25, 25)
$infobutton = GUICtrlCreateButton("?", 35, 5, 25, 25)
$statebutton = GUICtrlCreateButton("-/+", 65, 5, 25, 25)

GUISetState()
While 1
    $msg = GUIGetMsg()
    Switch $msg

        Case $item1
            GUICtrlSetData($Edit, $Text1)

        Case $item2
            GUICtrlSetData($Edit, $Text2)

        Case $item3
            GUICtrlSetData($Edit, $Text3)

        Case $item5
            GUICtrlSetData($Edit, 'Раздел в разработке')

        Case $item6
            GUICtrlSetData($Edit, 'Обычная вставка текста в элемент Edit')

        Case $item7
            GUICtrlSetData($Edit, 'Такой вариант может использоваться в виде записной книжки')

        Case $togglebutton ; Переключить отрисовку жирного шрифта
            If BitAND(GUICtrlRead($tree1), $GUI_DEFBUTTON) Then
                GUICtrlSetState($tree1, 0)
                GUICtrlSetState($tree2, 0)
            Else
                GUICtrlSetState($tree1, $GUI_DEFBUTTON)
                GUICtrlSetState($tree2, $GUI_DEFBUTTON)
            EndIf

        Case $infobutton
            $item = GUICtrlRead($treeview) ; Получить идентификатор (ID) текущего выделенного пункта treeview
            If $item = 0 Then
                MsgBox(64, "Сообщение", "Нет выделенных", 0, $hGui)
            Else
                $text = GUICtrlRead($item, 1) ; Получить текст пункта treeview
                If $text == "" Then
                    MsgBox(16, "Ошибка", "Ошибка при поиске инфо о пункте", 0, $hGui)
                Else
                    MsgBox(64, "Сообщение", "Выделен пункт: " & $text, 0, $hGui) ; $advmsg[0] содержит текст и $advmsg[1] значение состояния пункта treeview
                EndIf
            EndIf

        Case $item4
            GUICtrlSetState($item4, $GUI_EXPAND)

        Case $tree1
            GUICtrlSetState($tree1, $GUI_EXPAND)

        Case $tree2
            GUICtrlSetState($tree2, $GUI_EXPAND)

        Case $statebutton
            $item = GUICtrlRead($treeview)
            If $item > 0 Then
                $hItem = GUICtrlGetHandle($item)
                GUICtrlSendMsg($treeview, $TVM_EXPAND, $TVE_TOGGLE, $hItem)
            EndIf

        Case -3
            Exit
    EndSwitch
WEnd