ListView Drag&Drop und WM_NOTIFY

  • Hallo Leute,
    ich muss nochmal mein Beispiel-Script aufgreifen, da sich ein neues Problem ergeben hat.
    Ich wollte gern die Doubleclick-Funktion von ChaosKeks verwenden und musste leider feststellen, dass dadurch leider kein Drag&Drop im ListView mehr möglich ist.

    Spoiler anzeigen


    Hat jemand ne Idee, wo mein Fehler liegt?
    Grüße Gremlin

  • Du musst nur in deiner WM_NOTIFY($hWnd, $MsgID, $wParam, $lParam) Methode
    _GUIListViewEx_WM_NOTIFY_Handler($hWnd, $MsgID, $wParam, $lParam)
    aufrufen (am besten direkt am Anfang).

    Das Problem ist, dass dein GUIRegisterMsg die Registrierung der UDF überschreibt (in _GUIListViewEx_MsgRegister() wird WM_NOTIFITY registiert).
    Somit musst du nur die Funktion, die dort registriert wird manuell aufrufen.
    Dort wird neben $WM_NOTIFY auch $WM_MOUSEMOVE,$WM_LBUTTONUP und $WM_SYSCOMMAND registriert. Fall du also eine davon registrieren musst, musst du auch die entsprechenden Funktionen aufrufen.
    Du darfst auf keinen Fall dein GuiRegisterMsg hinter dem _GUIListViewEx_MsgRegister schreiben, andernfalls wird deine Registrierung überschrieben -> nur der kram der UDF funktioniert. Dort willst du deine Aufrufe ja nicht reinschreiben, denke ich :D

    MfG Kanashius

  • Vielen Dank Kanashius,
    Du bist Spitze. Es funktioniert 1A.
    Ich hatte die Funktion in der GUIListViewEx UDF gefunden und dachte ich muss die WM_NOTIFY-Funktion gegen diese ersetzen, aber das hatte leider auch nicht funktioniert. Darauf, dass sie mit eingebunden werden muss wäre ich nicht gekommen.

    Nochmals Danke,
    Gruß Gremlin