Rechtsklick bei ListView für ein Kontextmenü

  • Hallo,
    ich möchte ein Kontextmenü für ein ListView-Control erstellen und anhand der ausgewählten Zeile dann die Einträge im Menü aktivieren/deaktivieren. Ein sehr ähnliches Beispiel gibt es bei _GUICtrlRichEdit_CanRedo, nur mit einem RichTextEdit und es werden andere Nachrichten benutzt.
    Da ich allerdings recht wenig Erfahrung bei den Windowsnachrichten habe und weder die wichtigsten so kenne noch deren Parameter (müsste ich wieder alles aufwendig in der msdn nachschlagen), frag ich einfach mal hier, wie ich bewerkstelligen kann, dass mein Code bei einem Rechtsklick auf das Control ausgeführt wird.

    Danke im Voraus.

    Einmal editiert, zuletzt von FichteFoll (31. Januar 2011 um 16:47)

  • Dank, funktioniert jetzt. Habe lange bei $hWndFrom Probleme gehabt, da es zu keinem Zeitpunkt gleich meinem ListView war, das habe ich jetzt mit GUICtrlGetHandle lösen können.

    Für die Vervollständigung:

    Spoiler anzeigen
    [autoit]

    Func WM_NOTIFY($hWnd, $iMsg, $iWparam, $iLparam)
    #forceref $iMsg, $iWparam
    Local $hWndFrom, $iCode, $tNMHDR, $tMsgFilter, $hMenu
    $tNMHDR = DllStructCreate($tagNMHDR, $iLparam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iCode = DllStructGetData($tNMHDR, "Code")
    Local Static $hWndList = GUICtrlGetHandle($hList_Log)

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

    Switch $hWndFrom
    Case $hList_Log, $hWndList
    Switch $iCode
    Case $NM_RCLICK
    MsgBox(0, "olol", "it works")
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

    [/autoit]