Drag&Drop in dialogfeldbas. Anw. mit CListCrtl



  • Ich habe eine dialogfeldbasierende Anwendung mit einem CListCtrl.
    Ich möchte Dateien nun z.B. von einem Ordner aus per Drag&Drop in die Liste bringen. "Dateien akzeptieren" habe ich angewählt.
    Problem ist, das ich mit dieser Liste mehrere Nachrichten nicht abfangen kann.
    z.B. "OnDropFiles", oder "OnMouseMove"...
    Ich habe als Lösungsansatz jetzt mal in PreTranslateMessage WM_DROPFILES abgefangen. Das funzt auch.
    Leider komme ich so nicht an die Daten ran, was genau denn in die Liste "gedropt" wird. Mir fehlt die Struktur HDROP.
    Möglicherweise kann man das aus der MSG struktur ableiten. Aber wie??

    Weiß wer weiter?
    Oder einen komplett anderen Lösungsansatz??



  • DragFinish, DragQueryFile, or DragQueryPoint



  • FAQ.



  • Also ich hab´ das in der FAQ nachgelesen, aber nicht verstanden 😃
    <<COleDropTarget in 2. Liste erstellen>>
    Wie registriere ich das denn mit der Liste??
    Die Liste ist ja keine eigene Klasse, sodaß ich mit:
    m_ole.Register(this);
    das bewerkstelligen könnte.
    Ich habe nur eine Membervariable m_list von der Liste. ??

    Ich habe versucht, die Funktion OnDropFiles von Hand einzubauen. Wird sogar aufgerufen, wenn ich Dateien in das eingentliche Dialogfeld droppe. Kriegs aber nicht für die Liste hin.

    Zur ersten Antwort
    <<DragFinish, DragQueryFile, or DragQueryPoint >>
    ??? sind keine Memberfunktionen meiner Liste.



  • OK, danke an alle die mir gerne geholfen hätten, aber irgentwie verhindert waren.
    Ich hab´s alleine geschafft.
    Ganz einfach über PostMessage in PreTranslateMessage.



  • Ganz einfach über PostMessage in PreTranslateMessage

    was'n das für ne dreckslösung? *grins*



  • Wenn Du in PreTranslateMessage WM_DROPFILES abfängst, ist doch der WPARAM-Parameter vom Typ HDROP, damit ist doch alles geklärt, warum noch ein PostMessage? Und vor allem, wohin?


Log in to reply