Funktionreferenz


_GUICtrlTreeView_Create

Beschreibung anzeigen in

Erstellt ein Treeview-Control

#include <GuiTreeView.au3>
_GUICtrlTreeView_Create ( $hWnd, $iX, $iY [, $iWidth = 150 [, $iHeight = 150 [, $iStyle = 0x00000037 [, $iExStyle = 0x00000000]]]] )

Parameter

$hWnd Handle zum Parent- oder Eigner-Fenster
$iX Horizontale Position des Controls
$iY Vertikale Position des Controls
$iWidth [optional] Breite des Controls
$iHeight [optional] Höhe des Controls
$iStyle [optional] Stile des Controls:
    $TVS_CHECKBOXES - Aktiviert Checkboxen für die Items. Eine Checkbox wird nur dargestellt, wenn ein Bild mit dem Item verbunden ist.
        Wenn dieser Stile gesetzt wird, nutzt das Control DrawFrameControl um eine StatusImagelist zu erstellen und zu setzen, welche zwei Bilder enthält.
        Statusbild 1 ist die unmarkierte Checkbox und Statusbild 2 ist die markierte Checkbox, wird das Statusbild auf Null gesetzt, wird die Checkbox entfernt.
        Version 5.80 zeigt die Checkbox auch, wenn kein Bild mit dem Item verknüpft ist.
    $TVS_DISABLEDRAGDROP - Verhindert, dass das TreeView-Control TVN_BEGINDRAG-Benachrichtigungen sendet.
    $TVS_EDITLABELS - Erlaubt es dem Benutzer, ein Itemlabel zu ändern.
    $TVS_FULLROWSELECT - Aktiviert das Auswählen der kompletten Zeile.
        Die gesamte Zeile des ausgewählten Eintrags wird markiert und das Klicken irgendwo auf die Zeile eines Eintrags führt dazu, dass dieser Eintrag ausgewählt wird.
        Dieser Stil kann nicht zusammen mit $TVS_HASLINES style verwendet werden.
    $TVS_HASBUTTONS - Zeigt Plus (+) und Minus (-) Buttons neben "parent"-Items an.
        Der Benutzer klickt auf die Buttons um die Child-Items zu sehen oder zu verstecken.
        Um Buttons für Einträge auf der Ursprungsebene des Treeviews (root) anzuzeigen, muss zusätzlich
    $TVS_LINESATROOT aufgerufen werden
    $TVS_HASLINES - Verwendet Linien, um die Hierarchie der Items anzuzeigen.
    $TVS_INFOTIP - Bewirkt ToolTip Informationen durch Senden der $TVN_GETINFOTIP-Nachricht
    $TVS_LINESATROOT - Verwendet Linien, um Einträge auf der Ursprungsebene des Treeviews (root) zu verbinden dieser Wert wird ignoriert falls
    $TVS_HASLINES nicht festgelegt ist
    $TVS_NOHSCROLL - Deaktiviert horizontales Scrollen in dem Control. Das Control zeigt keine horizontale Scrollbar an.
    $TVS_NONEVENHEIGHT - Setzt die Höhe der Items durch die $TVM_SETITEMHEIGHT Nachricht auf eine ungerade Höhe.
        Standardmäßig muss die Höhe der Items ein gerader Wert sein.
    $TVS_NOSCROLL - Deaktiviert horizontales und vertikales Scrollen in dem Control. Das Control zeigt keine Scrollbar an.
    $TVS_NOTOOLTIPS - Deaktiviert ToolTips
    $TVS_RTLREADING - Bewirkt, dass Text von links nach rechts dargestellt wird
    $TVS_SHOWSELALWAYS - Sorgt dafür, dass ein ausgewähltes Item markiert bleibt, wenn das TreeView-Control den Fokus verliert.
    $TVS_SINGLEEXPAND - Bewirkt, dass das neue Item aufgeklappt wird und das alte Item zugeklappt wird.
        Falls das Item mit einem einfachen Mausklick angeklickt wird und dadurch das Item geschlossen wird, wird es aufgeklappt.
        Falls der Benutzer während dem auswählen die CTRL (Strg) Taste gedrückt hält, wird das nicht ausgewählte Item nicht zugeklappt
    $TVS_TRACKSELECT - Ermöglicht "hot tracking" in einem TreeView-Control.

    Standard: $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS
    Erzwungen: $WS_CHILD, $WS_VISIBLE
$iExStyle [optional] erweiterte Stile des Controls

Rückgabewert

Erfolg: Handle des Controls.
Fehler: 0.

Bemerkungen

Diese Funktion ist für erfahrene Benutzer und zum Erlernen wie das Control arbeitet.

- - - - - - - - Erklärung der Controls - - - - - - - -

Verwandte Funktionen

_GUICtrlTreeView_Destroy

Beispiel

Beispiel : mit der UDF erstellt

#include <Extras\WM_NOTIFY.au3>
#include <GuiConstantsEx.au3>
#include <GuiTreeView.au3>
#include <WindowsConstants.au3>

Global $g_hTreeView

Example()

Func Example()
    Local $hGUI = GUICreate("TreeView: Erstellen (v" & @AutoItVersion & ")", 400, 300)
    Local $iStyle = BitOR($TVS_EDITLABELS, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS, $TVS_CHECKBOXES)
    $g_hTreeView = _GUICtrlTreeView_Create($hGUI, 2, 2, 396, 268, $iStyle, $WS_EX_CLIENTEDGE)
    GUISetState(@SW_SHOW)

    _WM_NOTIFY_Register()

    _GUICtrlTreeView_BeginUpdate($g_hTreeView)
    Local $hItem
    For $x = 0 To 5
        $ahItem = _GUICtrlTreeView_Add($g_hTreeView, 0, StringFormat("[%02d] Neues Item", $x))
        For $y = 0 To 3
            _GUICtrlTreeView_AddChild($g_hTreeView, $ahItem, StringFormat("[%02d] Neues Child", $y))
        Next
    Next
    _GUICtrlTreeView_EndUpdate($g_hTreeView)

    ; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
EndFunc   ;==>Example

Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg, $wParam
    Local $hWndTreeview = $g_hTreeView
    If Not IsHWnd($g_hTreeView) Then $hWndTreeview = GUICtrlGetHandle($g_hTreeView)

    Local $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
    Local $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    Local $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
        Case $hWndTreeview
            Switch $iCode
                Case $NM_CLICK ; Der Benutzer hat das Control mit der linken Maustaste angeklickt
                    _WM_NOTIFY_DebugEvent("$NM_CLICK", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
;~                  Return 1 ; Verhindert die Standard-Nachrichtenbehandlung
                    Return 0 ; Standard-Nachrichtenbehandlung wird ausgeführt
                Case $NM_DBLCLK ; Der Benutzer hat einen Doppelklick auf das Control ausgeführt
                    _WM_NOTIFY_DebugEvent("$NM_DBLCLK", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
;~                  Return 1 ; Verhindert die Standard-Nachrichtenbehandlung
                    Return 0 ; Standard-Nachrichtenbehandlung wird ausgeführt
                Case $NM_RCLICK ; Der Benutzer hat das Control mit der rechten Maustaste angeklickt
                    _WM_NOTIFY_DebugEvent("$NM_RCLICK", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
;~                  Return 1 ; Verhindert die Standard-Nachrichtenbehandlung
                    Return 0 ; Standard-Nachrichtenbehandlung wird ausgeführt
                Case $NM_RDBLCLK ; Der Benutzer hat das Control mit der rechten Maustaste doppelgeklickt
                    _WM_NOTIFY_DebugEvent("$NM_RDBLCLK", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
;~                  Return 1 ; Verhindert die Standard-Nachrichtenbehandlung
                    Return 0 ; Standard-Nachrichtenbehandlung wird ausgeführt
                Case $NM_KILLFOCUS ; Das Control hat den Eingabefokus verloren
                    _WM_NOTIFY_DebugEvent("$NM_KILLFOCUS", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
                    ; Kein Rückgabewert
                Case $NM_RETURN ; Das Control hat den Eingabefokus und der Benutzer hat eine Taste gedrückt
                    _WM_NOTIFY_DebugEvent("$NM_RETURN", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
;~                  Return 1 ; Verhindert die Standard-Nachrichtenbehandlung
                    Return 0 ; Standard-Nachrichtenbehandlung wird ausgeführt
;~              Case $NM_SETCURSOR ; Das Control setzt den Cursor, weil es eine WM_SETCURSOR-Nachricht erhalten hat
;~                  _WM_NOTIFY_DebugEvent("$NM_SETCURSOR", $tagNMMOUSE, $lParam, "IDFrom,,ItemSpec,ItemData,X,Y,HitInfo")
;~                  Return 0 ; Erlaubt dem Control, den Cursor zu setzen
;~                  Return 1 ; Verbietet dem Control, den Cursor zu setzen
                Case $NM_SETFOCUS ; Das Control hat den Eingabefokus erhalten
                    _WM_NOTIFY_DebugEvent("$NM_SETFOCUS", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
                    ; Kein Rückgabewert
                Case $TVN_BEGINDRAGA, $TVN_BEGINDRAGW
                    _WM_NOTIFY_DebugEvent("$TVN_BEGINDRAG", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
                Case $TVN_BEGINLABELEDITA, $TVN_BEGINLABELEDITW
                    _WM_NOTIFY_DebugEvent("$TVN_BEGINLABELEDIT", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
                Case $TVN_BEGINRDRAGA, $TVN_BEGINRDRAGW
                    _WM_NOTIFY_DebugEvent("$TVN_BEGINRDRAG", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
                Case $TVN_DELETEITEMA, $TVN_DELETEITEMW
                    _WM_NOTIFY_DebugEvent("$TVN_DELETEITEM", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
                Case $TVN_ENDLABELEDITA, $TVN_ENDLABELEDITW
                    _WM_NOTIFY_DebugEvent("$TVN_ENDLABELEDIT", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
                Case $TVN_GETDISPINFOA, $TVN_GETDISPINFOW
                    _WM_NOTIFY_DebugEvent("$TVN_GETDISPINFO", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
                Case $TVN_GETINFOTIPA, $TVN_GETINFOTIPW
                    _WM_NOTIFY_DebugEvent("$TVN_GETINFOTIP", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
                Case $TVN_ITEMEXPANDEDA, $TVN_ITEMEXPANDEDW
                    _WM_NOTIFY_DebugEvent("$TVN_ITEMEXPANDED", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
                Case $TVN_ITEMEXPANDINGA, $TVN_ITEMEXPANDINGW
                    _WM_NOTIFY_DebugEvent("$TVN_ITEMEXPANDING", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
                Case $TVN_KEYDOWN
                    _WM_NOTIFY_DebugEvent("$TVN_KEYDOWN", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
                Case $TVN_SELCHANGEDA, $TVN_SELCHANGEDW
                    _WM_NOTIFY_DebugEvent("$TVN_SELCHANGED", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
                Case $TVN_SELCHANGINGA, $TVN_SELCHANGINGW
                    _WM_NOTIFY_DebugEvent("$TVN_SELCHANGING", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
                Case $TVN_SETDISPINFOA, $TVN_SETDISPINFOW
                    _WM_NOTIFY_DebugEvent("$TVN_SETDISPINFO", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
                Case $TVN_SINGLEEXPAND
                    _WM_NOTIFY_DebugEvent("$TVN_SINGLEEXPAND", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_NOTIFY