TreeView Fokus bei RMT

  • Moin zusammen,

    kann mir einer sagen, wie ich den Fokus auf das Item eines treeViews bekomme, welches ich mit der RMT anklicke?

    Spoiler anzeigen
    [autoit]


    #include <File.au3>
    #include <Array.au3>
    #include <GUITreeView.au3>
    #include <GUIConstantsEx.au3>

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

    Global $MainTreeView

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

    ;--------------------GUI erstellen--------------------------------------------------------------------------------------------------------------
    $gui = GUICreate("SQL-Test", 800, 600)
    $EditTitel = GUICtrlCreateInput("Hier bitte den Titel eintragen", 10, 15, 250, 25)
    $EditInhalt = GUICtrlCreateEdit("Hier bitte den Inhalt eintragen", 10, 50, 500, 500)

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

    $NewMainEntry = GUICtrlCreateButton("Neuen Haupteintrag anlegen", 15, 570, 150, 25)

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

    _TreeView()
    $ContextTreeView = GUICtrlCreateContextMenu($MainTreeView)
    $UnterEintrag_erstellen = GUICtrlCreateMenuItem("Untereintrag erstellen", $ContextTreeView)
    GUISetState()
    ;--------------------GUI fertig--------------------------------------------------------------------------------------------------------------

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

    While 1
    $nMsg = GUIGetMsg()

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

    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $UnterEintrag_erstellen
    $Item = GUICtrlRead($MainTreeView)
    $text = GUICtrlRead($Item, 1)
    $checkparent = _GUICtrlTreeView_GetChildCount($MainTreeView, $Item) ; >0 dann ist ein Parent und -1 kein Parent
    If $checkparent = -1 Then
    MsgBox(0, "Achtung", "Du kannst nur Themen in Themenbereichen erstellen")
    Else
    MsgBox(0, "", "parent")
    EndIf
    EndSwitch
    WEnd

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

    Func _Themenbereich_anlegen($name)
    DirCreate(@ScriptDir & "\Themen\" & $name)
    EndFunc ;==>_Themenbereich_anlegen

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

    Func _TreeView()
    GUICtrlDelete($MainTreeView)
    $MainTreeView = GUICtrlCreateTreeView(600, 15, 190, 570)
    $aFileList = _FileListToArray(@ScriptDir & "\Themen\")

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

    If IsArray($aFileList) Then
    For $i = 1 To $aFileList[0]
    $Sub = GUICtrlCreateTreeViewItem($aFileList[$i], $MainTreeView)
    $aFileTheme = _FileListToArray(@ScriptDir & "\Themen\" & $aFileList[$i])
    For $f = 1 To $aFileTheme[0]
    GUICtrlCreateTreeViewItem(StringReplace($aFileTheme[$i], ".txt", ""), $Sub)
    Next

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

    Next
    EndIf
    EndFunc ;==>_TreeView

    [/autoit]


    Hier ein kleines Bsp.

    MfG
    MrB

  • welches ich mit der RMT anklicke?

    dumme Frage: was ist RMT?

    Edit: normalerweise besutzt das angeklickte Item den Focus, wenn du es perSkripzcode fousieren willst solltest du dir

    [autoit]

    _GUICtrlTreeView_SetFocused

    [/autoit]

    in der Hilfe anschauen

    mfg autoBert

    Einmal editiert, zuletzt von autoBert (5. Juli 2012 um 03:21)

  • RMT = Rechte MausTaste

    Hmm, ich hab das auch falsch beschrieben. Fokus stimmt, denke ich.
    Wenn ich iregnedeine TreeViewItem mit der rechten Maustaste anklicke und den Text mit

    [autoit]

    $Item = GUICtrlRead($MainTreeView)
    $Thema = GUICtrlRead($Item, 1)

    [/autoit]


    auslese, nimmt er immer das zuletzt angewählte Item. Erst wenn ich einmal mit linken Maustaste drauf klicken und dann mit der rechten Maustaste ist alles i.O.