Ziehen und Ablegen
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 das 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 Taste oder eine andere Schaltfläche gedrückt hält, die zu diesem Zweck vorgesehen ist. Während sie die Schaltfläche weiter gedrückt halten, initiiert der Benutzer die Übertragung, indem das Objekt an das Ziel gezogen wird, was ein beliebiger OLE-Container sein 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 beseitigt die Notwendigkeit von Menüs. Wenn eine Anwendung das Kopieren und Einfügen der Zwischenablage unterstützt, ist ein wenig Zusätzliche erforderlich, um Drag and Drop zu unterstützen.
Während eines OLE-Drag-and-Drop-Vorgangs werden die folgenden drei separaten Codeteile verwendet.
Quellcode für Drag-and-Drop | Implementierung und Verwendung |
---|---|
IDropSource Schnittstelle |
Implementiert durch das Objekt, das die gezogenen Daten enthält, die als Drag Sourcebezeichnet werden. |
IDropTarget Schnittstelle |
Implementiert durch das Objekt, das die Ablage akzeptieren soll, die als Drop-Zielbezeichnet wird. |
DoDragDrop--Funktion |
Implementiert von OLE und wird verwendet, um einen Drag-and-Drop-Vorgang zu initiieren. Nachdem der Vorgang ausgeführt wurde, erleichtert es die Kommunikation zwischen der Ziehquelle und dem Ablageziel. |
Die IDropSource- und IDropTarget- Schnittstellen können entweder in einem Container oder in einer Objektanwendung implementiert werden. Die Rolle des Drag Source- oder Drop-Ziels ist nicht auf einen OLE-Anwendungstyp beschränkt.
Die OLE-Funktion DoDragDrop implementiert eine Schleife, die Maus- und Tastaturbewegungen nachverfolgt, bis z. B. die Ziehzeit abgebrochen wird oder ein Drop auftritt. DoDragDrop- ist die Schlüsselfunktion im Drag and Drop-Prozess, wodurch die Kommunikation zwischen der Ziehquelle und dem Dropziel erleichtert wird.
Während eines Zieh- und Ablagevorgangs können dem Benutzer drei Arten von Feedback angezeigt werden.
Feedbacktyp | 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 wurde. |
Zeigerfeedback |
Das Von der Ziehquelle bereitgestellte Zeigerfeedback gibt an, was passiert, wenn die Maus zu einem bestimmten Zeitpunkt losgelassen wird. Zeigerfeedback ändert sich ständig, wenn der Benutzer die Maus bewegt und/oder eine Zusatztaste drückt. Wenn der Zeiger beispielsweise in ein Fenster verschoben wird, das keine Ablage akzeptieren kann, ändert sich der Mauszeiger auf das Symbol "Nicht zulässig". |
Zielfeedback |
Das Zielfeedback gibt an, wo der Abbruch erfolgen soll. |
Weitere Informationen finden Sie unter Drag Source Responsibilities.