IDropTarget::D ragOver-Methode (oleidl.h)
Stellt dem Benutzer Zielfeedback bereit und kommuniziert die Auswirkung des Drops an die DoDragDrop-Funktion , damit sie den Effekt des Dropbacks an die Quelle kommunizieren kann.
Syntax
HRESULT DragOver(
[in] DWORD grfKeyState,
[in] POINTL pt,
[in, out] DWORD *pdwEffect
);
Parameter
[in] grfKeyState
Der aktuelle Status der Tastaturmodifizierertasten auf der Tastatur. Gültige Werte können eine Kombination aus allen Flags MK_CONTROL, MK_SHIFT, MK_ALT, MK_BUTTON, MK_LBUTTON, MK_MBUTTON und MK_RBUTTON sein.
[in] pt
Eine POINTL-Struktur , die die aktuellen Cursorkoordinaten in Bildschirmkoordinaten enthält.
[in, out] pdwEffect
Zeigen Sie bei der Eingabe auf den Wert des pdwEffect-Parameters der DoDragDrop-Funktion . Bei der Rückgabe muss eines der DROPEFFECT-Flags enthalten sein, das angibt, was das Ergebnis des Löschvorgangs wäre.
Rückgabewert
Diese Methode gibt S_OK bei Erfolg zurück. Weitere mögliche Werte sind:
Rückgabecode | Beschreibung |
---|---|
|
Ein unerwarteter Fehler ist aufgetreten. |
|
Der pdwEffect-Wert ist ungültig. |
|
Für diesen Vorgang war nicht genügend Arbeitsspeicher verfügbar. |
Hinweise
Sie rufen DragOver nicht direkt auf. Die DoDragDrop-Funktion ruft diese Methode jedes Mal auf, wenn der Benutzer die Maus über ein bestimmtes Zielfenster bewegt. DoDragDrop beendet die Schleife, wenn der Drag-and-Drop-Vorgang abgebrochen wird, wenn der Benutzer die Maus aus dem Zielfenster zieht oder der Ablagevorgang abgeschlossen ist.
Bei der Implementierung von IDropTarget::D ragOver müssen Sie Ähnliche Funktionen wie in IDropTarget::D ragEnter bereitstellen. Sie müssen die Auswirkungen des Löschens der Daten auf dem Ziel ermitteln, indem Sie die FORMATETC untersuchen, die die Formate und das Medium des Datenobjekts zusammen mit dem Zustand der Modifiziererschlüssel definiert. Die Mausposition kann auch eine Rolle bei der Bestimmung der Auswirkung eines Tropfens spielen. Die folgenden Modifizierertasten wirken sich auf das Ergebnis der Ablage aus.
Tastenkombination | feedback User-Visible | Drop-Effekt |
---|---|---|
STRG+UMSCHALT | = | DROPEFFECT_LINK |
STRG | + | DROPEFFECT_COPY |
Keine Tasten oder UMSCHALTTASTE | Keine | DROPEFFECT_MOVE |
Sie kommunizieren die Auswirkungen des Dropbacks an die Quelle über DoDragDrop in pdwEffect. Die DoDragDrop-Funktion ruft dann IDropSource::GiveFeedback auf, damit die Quellanwendung dem Benutzer das entsprechende visuelle Feedback anzeigen kann.
Beim Eintrag zu IDropTarget::D ragOver muss der pdwEffect-Parameter auf die zulässigen Effekte festgelegt werden, die an den pdwOkEffect-Parameter der DoDragDrop-Funktion übergeben werden. Die IDropTarget::D ragOver-Methode muss in der Lage sein, einen dieser Effekte auszuwählen oder den Drop zu deaktivieren.
Bei der Rückgabe wird pdwEffect auf eines der DROPEFFECT-Flags festgelegt. Dieser Wert wird dann an den pdwEffect-Parameter von DoDragDrop übergeben. Vernünftige Werte sind DROPEFFECT_COPY, um die gezogenen Daten auf das Ziel zu kopieren, DROPEFFECT_LINK, um einen Link zu den Quelldaten zu erstellen, oder DROPEFFECT_MOVE, um das dauerhafte Verschieben der gezogenen Daten von der Quellanwendung in das Ziel zu ermöglichen.
Sie können auch geeignetes visuelles Feedback im Zielfenster bereitstellen. Möglicherweise wurde bereits ein Zielfeedback aus einem vorherigen Aufruf von IDropTarget::D ragOver oder vom anfänglichen IDropTarget::D ragEnter angezeigt. Wenn dieses Feedback nicht mehr geeignet ist, sollten Sie es entfernen.
Aus Effizienzgründen wird ein Datenobjekt in IDropTarget::D ragOver nicht übergeben. Das Datenobjekt, das im letzten Aufruf von IDropTarget::D ragEnter übergeben wurde, ist verfügbar und kann verwendet werden.
Wenn IDropTarget::D ragOver den Vorgang abgeschlossen hat, ruft die DoDragDrop-FunktionIDropSource::GiveFeedback auf, damit die Quellanwendung dem Benutzer das entsprechende visuelle Feedback anzeigen kann.
Hinweise für Implementierer
Diese Funktion wird während der DoDragDrop-Schleife häufig aufgerufen, sodass es sinnvoll ist, die Implementierung der DragOver-Methode so weit wie möglich zu optimieren.Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | oleidl.h |