Drag&Drop zwischen zwei Anwendungen
-
Hallo Leute!
Ich stehe gerade vor einem Problem. Kann es Drag&Drop zwischen zwei Anwendungen geben oder geht das meist nur innerhalb einer Anwendung? Kurz erklärt, ich habe zwei Anwendungen. Ich möchte Text aus der Editbox der einen in die andere ziehen via Drag&Drop. Das Hindernis dabei scheint mir zu sein, dass die andere Anwendung nicht unter meiner Kontrolle liegt. Würde es prinzipiell gehen oder ist sowas generell unmöglich. Ich befürchte letzteres, da ich über das eine der beiden Programme absolut keine Kontrolle habe.
Wäre es denkbar nur in meiner Anwendung áuf eine Message zu warten, die mir sagt, dass jemand mein Programm sozusagen als Drop-Zone benutzt?
Viele Grüße
Ranger
-
Drag&Drop ist eine Funkioalität die in Windows OLE/COM verankert ist.
http://msdn.microsoft.com/en-us/library/ms742859.aspxWenn das andere Programm für das Clipboard Format das Du lieferst empfänglich ist, dann wird es gehen.
Drag&Drop ist ein Systemfeature. En Programm wird gefragt, ob es erlaubt, dass Daten eines bestimmten Formates (das die Quelle/Drop-Source anbietet) gedroppt werden kann.
Das ganze läuft über die Interfaces IDataObject/IDropTarget/IDropSource.
In der MFC ist das sehr simpel in COleDropTarget/COleDropSource implementiert.http://www.codeproject.com/KB/clipboard/ddmgr.aspx
http://www.codeproject.com/KB/clipboard/index.aspx?#Clipboard - Drag and DropSiehe auch RegisterDragDrop, DoDragDrop
http://msdn.microsoft.com/en-us/library/ms678405(VS.85).aspx
http://msdn2.microsoft.com/en-us/library/ms678486(VS.85).aspx
-
Danke!
Ich meinte zwar genau den umgekerhten Weg, der USer markiert dort Text und schiebt ihn in meine Anwendung, aber das dürfte ja dann nur dran liegen, die ich das Objekt oder den TExt engegen nehme.
Setzt aber voraus, dass die Source Anwendung aus der Der Text kommen soll (die die ich nicht beeinflussen kann) Drag&Drop erlaubt bzw. den markierten Text zum ziehen frei gibt, oder?
-
Richtig! Es setzt vorraus, dass die Quellanwendung eben eine IDropSource zur Verfügung stellt und Du als Zeilanwendung das entsprechende Clipboard-Format unterstützt...
So kann ich z.B aus Word nach TextPad nach Wordpad ziehen oder in Textpad.