Drag & Drop
Drag and Drop bezieht sich auf Datenübertragungen, bei denen eine Maus oder ein anderes Zeigegerät verwendet wird, um sowohl die Datenquelle als auch ihr Ziel anzugeben. In einem typischen Drag-and-Drop-Vorgang wählt ein Benutzer das zu übertragende Objekt aus, indem er den Mauszeiger darauf bewegt und entweder die linke Schaltfläche oder eine andere für diesen Zweck bestimmte Schaltfläche gedrückt hält. Während die Schaltfläche weiterhin gedrückt gehalten wird, initiiert der Benutzer die Übertragung, indem er das Objekt an sein Ziel zieht, bei dem es sich um einen beliebigen OLE-Container handeln kann. Drag and Drop bietet genau die gleiche Funktionalität wie das Kopieren und Einfügen der OLE-Zwischenablage, fügt jedoch visuelles Feedback hinzu und entfällt die Notwendigkeit von Menüs. Wenn eine Anwendung das Kopieren und Einfügen der Zwischenablage unterstützt, ist nur wenig Zusätzliches erforderlich, um drag and drop zu unterstützen.
Während eines OLE-Drag-and-Drop-Vorgangs werden die folgenden drei separaten Codeelemente verwendet.
Codequelle per Drag-and-Drop | Implementierung und Verwendung |
---|---|
IDropSource-Schnittstelle |
Implementiert durch das Objekt, das die gezogenen Daten enthält, die als Ziehquelle bezeichnet werden. |
IDropTarget-Schnittstelle |
Implementiert durch das Objekt, das den Drop akzeptieren soll, der als Dropziel bezeichnet wird. |
DoDragDrop-Funktion |
Wird von OLE implementiert und zum Initiieren eines Drag and Drop-Vorgangs verwendet. Nachdem der Vorgang ausgeführt wurde, erleichtert er die Kommunikation zwischen der Ziehquelle und dem Ablageziel. |
Die Schnittstellen IDropSource und IDropTarget können entweder in einem Container oder in einer Objektanwendung implementiert werden. Die Rolle des Quell- oder Ablageziels für das Ziehen ist nicht auf einen ole-Anwendungstyp beschränkt.
Die OLE-Funktion DoDragDrop implementiert eine Schleife, die Maus- und Tastaturbewegungen nachverfolgt, bis der Ziehvorgang abgebrochen wird oder ein Abbruch auftritt. DoDragDrop ist die Schlüsselfunktion im Drag-and-Drop-Prozess und erleichtert die Kommunikation zwischen der Ziehquelle und dem Ablageziel.
Während eines Drag-and-Drop-Vorgangs können dem Benutzer drei Arten von Feedback angezeigt werden.
Art des Feedbacks | BESCHREIBUNG |
---|---|
Quellfeedback |
Das Von der Ziehquelle bereitgestellte Quellfeedback gibt an, dass die Daten gezogen werden und sich während des Ziehens nicht ändern. In der Regel werden die Daten hervorgehoben, um zu signalisieren, dass sie ausgewählt wurden. |
Zeigerfeedback |
Das Von der Ziehquelle bereitgestellte Zeigerfeedback gibt an, was geschieht, wenn die Maus zu einem bestimmten Zeitpunkt losgelassen wird. Das Zeigerfeedback ändert sich kontinuierlich, wenn der Benutzer die Maus bewegt und/oder eine Modifizierertaste drückt. Wenn der Zeiger beispielsweise in ein Fenster verschoben wird, das keinen Drop akzeptieren kann, ändert sich der Zeiger in das Symbol "nicht zulässig". |
Zielfeedback |
Das Vom Ablageziel bereitgestellte Zielfeedback gibt an, wo der Abbruch erfolgen soll. |
Weitere Informationen finden Sie unter Ziehen von Quellverantwortungen.