Problem mit Listviewauswahl

  • Hallo,

    vieleicht kann mir jemand bei meinem Problem helfen.
    Mir ist aufgefallen, dass ein Eintrag (item) auf zwei verschiedene Arten in meinem Beispiel
    markiert sein kann.
    Einmal ist wenn ich direkt mit der Maus draufklick der Eintrag "blau" markiert und alle Funktionen aus den
    Contextmenü funktionieren. Wenn ich den Mauszeiger danach ins leere Listview stelle ist der Eintrag nicht "blau"
    sondern hat ein gestrichelten Rand. Wenn ich nun das Contextmenü aufrufe dann kann dieser "gestrichelte"
    markierte Eintrag sogar kopiert aber nicht gelöscht werden.
    Ich würde es gerne so haben das nur wenn der Eintrag "blau" markiert ist auch das Contextmenü seinen Dienst tut.

    Hier mal das was ich meine in zwei Screenshots:
    Screen 1: Blau markiert
    Screen 2: gestrichelt markiert


    Hier mal das Beispiel:

  • Contextmenü nicht direkt im Listview erstellen, sondern mithilfe eines Dummycontrols:

    AutoIt
    Global $hGui = GUICreate("ListView", 400, 300)
    $idListview = GUICtrlCreateListView("", 2, 2, 394, 268)
    Global $cDummy = GUICtrlCreateDummy()
    Global $CM = GUICtrlCreateContextMenu($cDummy)


    Und noch folgendes in die Hauptschleife einfügen:

    AutoIt
    Case $GUI_EVENT_SECONDARYDOWN
        If _GUICtrlListView_GetSelectedCount($idListview) = 1 Then DllCall("user32.dll", "int", "TrackPopupMenuEx", "hwnd", GUICtrlGetHandle($CM), "int", 0, "int", MouseGetPos(0), "int", MouseGetPos(1), "hwnd", $hGui, "ptr", 0)


    E