Freigeben über


CView::OnDropEx

Aufgerufen vom Framework, wenn der Benutzer ein Datenobjekt über ein gültiges Ablageziel freigibt.

virtual DROPEFFECT OnDropEx( 
   COleDataObject* pDataObject, 
   DROPEFFECT dropDefault, 
   DROPEFFECT dropList, 
   CPoint point  
);

Parameter

  • pDataObject
    Zeigt auf COleDataObject, das in das Ablageziel abgelegt wird.

  • dropDefault
    Der Effekt, den der Benutzer für den standardmäßigen Drop-Vorgang basierend auf den aktuellen Tastenzustand ausgewählt hat. Es ist möglicherweise DROPEFFECT_NONE. Ablageeffekte werden in den Abschnitt "Hinweise" erläutert.

  • dropList
    Eine Liste der Ablageeffekte, die die Ablagequelle unterstützt. Ablageeffektwerte können mithilfe des bitweisen OR kombiniert werden ( |) - Operation. Ablageeffekte werden in den Abschnitt "Hinweise" erläutert.

  • point
    Die aktuelle Mausposition relativ zum Ansichtsclientbereich.

Rückgabewert

Der Ablageeffekt, der vom Ablagenversuch am Speicherort resultiert, wurden durch point an. Dieser muss einer der Werte sein, die von dropEffectList angegeben werden. Ablageeffekte werden in den Abschnitt "Hinweise" erläutert.

Hinweise

Die Standardimplementierung ist, nichts unternehmen und einen blinden Wert (-1) zurückgibt dass das Framework den OnDrop-Handler aufrufen sollte.

Überschreiben Sie diese Funktion, um den Effekt eines Drag & Drop der rechten Maustaste zu implementieren. Drag & Drop der rechten Maustaste wird in der Regel ein Menü mit Auswahlmöglichkeiten an, wenn die rechte Maustaste losgelassen wird.

Die Überschreibung von OnDropEx sollte für die rechte Maustaste abfragen. Sie können GetKeyState aufrufen oder den Zustand der rechten Maustaste im OnDragEnter-Handler speichern.

  • Wenn die rechte Maustaste unten ist, sollte die Überschreibung ein Popupmenü anzeigen, das die Ablageeffektunterstützung durch die Ablagequelle bietet.

    • Überprüfen Sie dropList, um die Ablageeffekte zu ermitteln, die von der Quelle unterstützt werden. Aktivieren Sie nur diese Aktionen im Popupmenü.

    • Verwenden Sie SetMenuDefaultItem, um die Standardaktion auf Grundlage dropDefault festzulegen.

    • Abschließend führen Sie die Aktionen, die durch die Benutzerauswahl im Popupmenü angegeben werden.

  • Wenn die rechte Maustaste nicht unten ist, sollte die Überschreibung dieses verarbeiten als Standardablagenanforderung. Verwenden Sie den Ablageeffekt, der in dropDefault angegeben wird. Alternativ kann die Überschreibung den blinden Wert (-1) zurückgeben dass OnDrop diesen Drop-Vorgang behandelt.

Verwenden Sie pDataObject, um COleDataObject für das Zwischenablagedatenformat und Daten zu überprüfen, die am angegebenen Punkt abgelegt werden.

Ablageeffekte beschreiben die Aktion, die mit einem Drop-Vorgang zugeordnet ist. Siehe die folgende Liste von Ablageeffekten:

  • Löschen DROPEFFECT_NONE A würde nicht zulässig.

  • Kopiervorgang DROPEFFECT_COPY A wird ausgeführt.

  • Verschiebungsvorgang DROPEFFECT_MOVE A wird ausgeführt.

  • Link DROPEFFECT_LINK Ein aus den abgelegten Daten zu den ursprünglichen Daten würde festgelegt.

  • DROPEFFECT_SCROLL gibt an, dass ein, Ziehbildlaufvorgang gerade auftritt oder tritt Ziel auf.

Weitere Informationen zum Festlegen des standardmäßigen Menübefehls, finden Sie unter SetMenuDefaultItem in Windows SDK und CMenu::GetSafeHmenu in diesem Volume.

Anforderungen

Header: afxwin.h

Siehe auch

Referenz

CView-Klasse

Hierarchiediagramm

CView::OnDragEnter

CView::OnDragOver

CView::OnDrop

CView::OnDragLeave

COleDropTarget::OnDropEx