TreeView (Ermittlung von Parent-Item)

  • Hallo, bitte um Hilfe!

    Ich versuche seit Stunden den Parent (übergeordnete Item eines TreeView-Items) als Text zu ermitteln. Das per Maus aktivierte Item konnte ich mit:

    $hItem = GUICtrlSendMsg($treeview, $TVM_GETNEXTITEM, $TVGN_CARET, 0)
    MsgBox(0,"",_GUICtrlTreeView_GetText($treeview, $hItem))

    auslesen. Ich benötige aber auch den Text des übergeordneten Items. Ich schaffe es einfach nicht. Kann mir da jemand helfen?

    [Blockierte Grafik: http://www.sgs.at/schieferer/TreeView.jpg]

    Einmal editiert, zuletzt von schieferer (4. Mai 2008 um 11:01)

  • Hi,
    ich denke es ist eine selbst erstellte GUI. Wenn ja, dann dürfte dies klappen

    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>
    #include <GuiTreeView.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt('MustDeclareVars', 1)

    [/autoit] [autoit][/autoit] [autoit]

    $Debug_TV = False ; Check ClassName being passed to functions, set to True and use a handle to another control to see it work

    [/autoit] [autoit][/autoit] [autoit]

    Example_Internal()

    [/autoit] [autoit][/autoit] [autoit]

    Func Example_Internal()

    [/autoit] [autoit][/autoit] [autoit]

    Local $hItem, $hChild, $hFirst, $hTreeView
    Local $iStyle = BitOR($TVS_EDITLABELS, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS, $TVS_CHECKBOXES)

    GUICreate("(Internal) TreeView Get Parent Handle", 400, 300)

    [/autoit] [autoit][/autoit] [autoit]

    $hTreeView = GUICtrlCreateTreeView(2, 2, 396, 268, $iStyle, $WS_EX_CLIENTEDGE)
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlTreeView_BeginUpdate ($hTreeView)
    For $x = 0 To 20
    $hItem = GUICtrlCreateTreeViewItem(StringFormat("[%02d] New Item", $x), $hTreeView)
    For $y = 0 To 2
    $hChild = GUICtrlCreateTreeViewItem(StringFormat("[%02d] New Item", $y), $hItem)
    Next
    Next
    _GUICtrlTreeView_EndUpdate ($hTreeView)

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlTreeView_SelectItem ($hTreeView, $hChild)
    MsgBox(0,"",_GUICtrlTreeView_GetText ($hTreeView, _GUICtrlTreeView_GetParentHandle ($hTreeView, $hChild))) ;hier wird das handle des parent ermittelt und dann dessen Namen ermittelt

    [/autoit] [autoit][/autoit] [autoit]

    ; Loop until user exits
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
    EndFunc ;==>Example_Internal

    [/autoit]
  • Hallo,

    danke für die rasche Reaktion. Klappt perfekt!
    Nochmals vielen, vielen Danke und

    LG
    Peter