Freigeben über


COleDropTarget-Klasse

Stellt den Kommunikationsmechanismus zwischen einem Fenster und den OLE-Bibliotheken bereit.

Syntax

class COleDropTarget : public CCmdTarget

Member

Öffentliche Konstruktoren

Name Beschreibung
COleDropTarget::COleDropTarget Erstellt ein COleDropTarget-Objekt.

Öffentliche Methoden

Name Beschreibung
COleDropTarget::OnDragEnter Wird aufgerufen, wenn der Cursor das Fenster zum ersten Mal eingibt.
COleDropTarget::OnDragLeave Wird aufgerufen, wenn der Cursor aus dem Fenster gezogen wird.
COleDropTarget::OnDragOver Wird wiederholt aufgerufen, wenn der Cursor über das Fenster gezogen wird.
COleDropTarget::OnDragScroll Wird aufgerufen, um zu bestimmen, ob der Cursor in den Bildlaufbereich des Fensters gezogen wird.
COleDropTarget::OnDrop Wird aufgerufen, wenn Daten im Fenster abgelegt werden, Standardhandler.
COleDropTarget::OnDropEx Wird aufgerufen, wenn Daten im Fenster abgelegt werden, initialer Handler.
COleDropTarget::Register Registriert das Fenster als gültiges Drop-Ziel.
COleDropTarget::Revoke Bewirkt, dass das Fenster nicht mehr als gültiges Drop-Ziel gilt.

Hinweise

Durch das Erstellen eines Objekts dieser Klasse kann ein Fenster Daten über den OLE-Drag-and-Drop-Mechanismus akzeptieren.

Um ein Fenster zum Akzeptieren von Dropbefehlen abzurufen, sollten Sie zuerst ein Objekt der COleDropTarget Klasse erstellen und dann die Register-Funktion mit einem Zeiger auf das gewünschte CWnd Objekt als einzigen Parameter aufrufen.

Weitere Informationen zu Drag-and-Drop-Vorgängen mit OLE finden Sie im Artikel "OLE-Ziehen und Ablegen".

Vererbungshierarchie

CObject

CCmdTarget

COleDropTarget

Anforderungen

Kopfzeile: afxole.h

COleDropTarget::COleDropTarget

Erstellt ein Objekt der Klasse COleDropTarget.

COleDropTarget();

Hinweise

Rufen Sie "Register" auf, um dieses Objekt einem Fenster zuzuordnen.

COleDropTarget::OnDragEnter

Wird vom Framework aufgerufen, wenn der Cursor zuerst in das Fenster gezogen wird.

virtual DROPEFFECT OnDragEnter(
    CWnd* pWnd,
    COleDataObject* pDataObject,
    DWORD dwKeyState,
    CPoint point);

Parameter

pWnd
Zeigt auf das Fenster, in das der Cursor eingegeben wird.

pDataObject
Verweist auf das Datenobjekt, das die Daten enthält, die gelöscht werden können.

dwKeyState
Enthält den Status der Zusatztasten. Dies ist eine Kombination aus einer beliebigen Anzahl von Folgenden: MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_MBUTTON und MK_RBUTTON.

Punkt
Enthält die aktuelle Position des Cursors in Clientkoordinaten.

Rückgabewert

Der Effekt, der dazu führen würde, wenn eine Ablage an der durch Punkt angegebenen Position versucht wurde. Dies kann eine oder mehrere der folgenden Aktionen sein:

  • DROPEFFECT_NONE Ein Drop wäre nicht zulässig.

  • DROPEFFECT_COPY Ein Kopiervorgang würde ausgeführt werden.

  • DROPEFFECT_MOVE Ein Verschiebungsvorgang würde ausgeführt werden.

  • DROPEFFECT_LINK Eine Verknüpfung zwischen den abgelegten Daten und den ursprünglichen Daten würde hergestellt werden.

  • DROPEFFECT_SCROLL Ein Bildlaufvorgang für ziehen ist dabei oder tritt im Ziel auf.

Hinweise

Überschreiben Sie diese Funktion, damit Dropvorgänge im Fenster auftreten können. Die Standardimplementierung ruft CView::OnDragEnter auf, die einfach DROPEFFECT_NONE standardmäßig zurückgibt.

Weitere Informationen finden Sie unter "IDropTarget::D ragEnter " im Windows SDK.

COleDropTarget::OnDragLeave

Wird vom Framework aufgerufen, wenn der Cursor das Fenster verlässt, während ein Ziehvorgang wirksam ist.

virtual void OnDragLeave(CWnd* pWnd);

Parameter

pWnd
Zeigt auf das Fenster, das der Cursor verlässt.

Hinweise

Überschreiben Sie diese Funktion, wenn Sie ein spezielles Verhalten wünschen, wenn der Ziehvorgang das angegebene Fenster verlässt. Die Standardimplementierung dieser Funktion ruft CView::OnDragLeave auf.

Weitere Informationen finden Sie unter "IDropTarget::D ragLeave " im Windows SDK.

COleDropTarget::OnDragOver

Wird vom Framework aufgerufen, wenn der Cursor über das Fenster gezogen wird.

virtual DROPEFFECT OnDragOver(
    CWnd* pWnd,
    COleDataObject* pDataObject,
    DWORD dwKeyState,
    CPoint point);

Parameter

pWnd
Zeigt auf das Fenster, über dem der Cursor liegt.

pDataObject
Verweist auf das Datenobjekt, das die zu löschenden Daten enthält.

dwKeyState
Enthält den Status der Zusatztasten. Dies ist eine Kombination aus einer beliebigen Anzahl von Folgenden: MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_MBUTTON und MK_RBUTTON.

Punkt
Enthält die aktuelle Position des Cursors in Clientkoordinaten.

Rückgabewert

Der Effekt, der dazu führen würde, wenn eine Ablage an der durch Punkt angegebenen Position versucht wurde. Dies kann eine oder mehrere der folgenden Aktionen sein:

  • DROPEFFECT_NONE Ein Drop wäre nicht zulässig.

  • DROPEFFECT_COPY Ein Kopiervorgang würde ausgeführt werden.

  • DROPEFFECT_MOVE Ein Verschiebungsvorgang würde ausgeführt werden.

  • DROPEFFECT_LINK Eine Verknüpfung zwischen den abgelegten Daten und den ursprünglichen Daten würde hergestellt werden.

  • DROPEFFECT_SCROLL Gibt an, dass im Ziel ein Bildlaufvorgang ausgeführt oder ausgeführt wird.

Hinweise

Diese Funktion sollte überschrieben werden, damit Dropvorgänge im Fenster auftreten können. Die Standardimplementierung dieser Funktion ruft CView::OnDragOver auf, die standardmäßig DROPEFFECT_NONE zurückgibt. Da diese Funktion während eines Drag-and-Drop-Vorgangs häufig aufgerufen wird, sollte sie so weit wie möglich optimiert werden.

Weitere Informationen finden Sie unter "IDropTarget::D ragOver " im Windows SDK.

Beispiel

DROPEFFECT COleContainerView::OnDragOver(COleDataObject* pDataObject,
   DWORD dwKeyState, CPoint point)
{
   UNREFERENCED_PARAMETER(pDataObject);
   UNREFERENCED_PARAMETER(point);

   DROPEFFECT de = DROPEFFECT_NONE;
   //Determine the type of operation
   if ((dwKeyState & MK_SHIFT) && (dwKeyState & MK_CONTROL))
      de = DROPEFFECT_LINK;
   else if (dwKeyState & MK_CONTROL)
      de = DROPEFFECT_COPY;
   else if (dwKeyState & MK_SHIFT)
      de = DROPEFFECT_MOVE;
   return de;
}

COleDropTarget::OnDragScroll

Wird vom Framework aufgerufen, bevor Sie OnDragEnter oder OnDragOver aufrufen, um zu bestimmen, ob sich der Punkt im Bildlaufbereich befindet.

virtual DROPEFFECT OnDragScroll(
    CWnd* pWnd,
    DWORD dwKeyState,
    CPoint point);

Parameter

pWnd
Zeigt auf das Fenster, über dem der Cursor zurzeit liegt.

dwKeyState
Enthält den Status der Zusatztasten. Dies ist eine Kombination aus einer beliebigen Anzahl von Folgenden: MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_MBUTTON und MK_RBUTTON.

Punkt
Enthält die Position des Cursors in Pixeln relativ zum Bildschirm.

Rückgabewert

Der Effekt, der dazu führen würde, wenn eine Ablage an der durch Punkt angegebenen Position versucht wurde. Dies kann eine oder mehrere der folgenden Aktionen sein:

  • DROPEFFECT_NONE Ein Drop wäre nicht zulässig.

  • DROPEFFECT_COPY Ein Kopiervorgang würde ausgeführt werden.

  • DROPEFFECT_MOVE Ein Verschiebungsvorgang würde ausgeführt werden.

  • DROPEFFECT_LINK Eine Verknüpfung zwischen den abgelegten Daten und den ursprünglichen Daten würde hergestellt werden.

  • DROPEFFECT_SCROLL Gibt an, dass im Ziel ein Bildlaufvorgang ausgeführt oder ausgeführt wird.

Hinweise

Überschreiben Sie diese Funktion, wenn Sie ein spezielles Verhalten für dieses Ereignis bereitstellen möchten. Die Standardimplementierung dieser Funktion ruft CView::OnDragScroll auf, die DROPEFFECT_NONE zurückgibt, und scrollt das Fenster, wenn der Cursor in den Standardlaufbereich innerhalb des Fensterrahmens gezogen wird.

COleDropTarget::OnDrop

Wird vom Framework aufgerufen, wenn ein Ablagevorgang ausgeführt werden soll.

virtual BOOL OnDrop(
    CWnd* pWnd,
    COleDataObject* pDataObject,
    DROPEFFECT dropEffect,
    CPoint point);

Parameter

pWnd
Zeigt auf das Fenster, über dem der Cursor zurzeit liegt.

pDataObject
Verweist auf das Datenobjekt, das die zu löschenden Daten enthält.

dropEffect
Der Effekt, den der Benutzer für den Ablagevorgang ausgewählt hat. Dies kann eine oder mehrere der folgenden Aktionen sein:

  • DROPEFFECT_COPY Ein Kopiervorgang würde ausgeführt werden.

  • DROPEFFECT_MOVE Ein Verschiebungsvorgang würde ausgeführt werden.

  • DROPEFFECT_LINK Eine Verknüpfung zwischen den abgelegten Daten und den ursprünglichen Daten würde hergestellt werden.

Punkt
Enthält die Position des Cursors in Pixeln relativ zum Bildschirm.

Rückgabewert

Nonzero, wenn der Drop erfolgreich ist; andernfalls 0.

Hinweise

Das Framework ruft zuerst OnDropEx auf. Wenn die OnDropEx Funktion den Drop nicht behandelt, ruft das Framework diese Memberfunktion auf. OnDrop In der Regel überschreibt die Anwendung OnDropEx in der Ansichtsklasse, um das ziehen und ablegen der rechten Maustaste zu verarbeiten. In der Regel wird die Ansichtsklasse OnDrop verwendet, um einfaches Ziehen und Ablegen zu verarbeiten.

Die Standardimplementierung von COleDropTarget::OnDrop Aufrufen CView::OnDrop, die einfach FALSE standardmäßig zurückgibt.

Weitere Informationen finden Sie unter "IDropTarget::D rop " im Windows SDK.

COleDropTarget::OnDropEx

Wird vom Framework aufgerufen, wenn ein Ablagevorgang ausgeführt werden soll.

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

Parameter

pWnd
Zeigt auf das Fenster, über dem der Cursor zurzeit liegt.

pDataObject
Verweist auf das Datenobjekt, das die zu löschenden Daten enthält.

dropDefault
Der Effekt, den der Benutzer basierend auf dem aktuellen Schlüsselstatus für den Standardablagevorgang ausgewählt hat. Es kann DROPEFFECT_NONE werden. Drop-Effekte werden im Abschnitt "Hinweise" erläutert.

dropList
Eine Liste der Dropeffekte, die von der Dropquelle unterstützt werden. Drop effect values can be combined using the bitwise OR (|) operation. Drop-Effekte werden im Abschnitt "Hinweise" erläutert.

Punkt
Enthält die Position des Cursors in Pixeln relativ zum Bildschirm.

Rückgabewert

Der Ablageeffekt, der aus dem Dropversuch an der durch Punkt angegebenen Position resultierte. Drop-Effekte werden im Abschnitt "Hinweise" erläutert.

Hinweise

Das Framework ruft diese Funktion zuerst auf. Wenn der Drop nicht behandelt wird, ruft das Framework OnDrop auf. Normalerweise überschreiben Sie OnDropEx in der Ansichtsklasse, um das ziehen und ablegen mit der rechten Maustaste zu unterstützen. In der Regel wird die Ansichtsklasse OnDrop verwendet, um den Fall der Unterstützung für einfaches Ziehen und Ablegen zu behandeln.

Die Standardimplementierung von Aufrufen von COleDropTarget::OnDropEx CView::OnDropEx. Standardmäßig gibt CView::OnDropEx einfach einen Dummywert zurück, um anzugeben, dass die OnDrop-Memberfunktion aufgerufen werden soll.

Drop effects describe the action associated with a drop operation. Eine Liste der Dropeffekte finden Sie in der folgenden Liste:

  • DROPEFFECT_NONE Ein Drop wäre nicht zulässig.

  • DROPEFFECT_COPY Ein Kopiervorgang würde ausgeführt werden.

  • DROPEFFECT_MOVE Ein Verschiebungsvorgang würde ausgeführt werden.

  • DROPEFFECT_LINK Eine Verknüpfung zwischen den abgelegten Daten und den ursprünglichen Daten würde hergestellt werden.

  • DROPEFFECT_SCROLL Gibt an, dass im Ziel ein Bildlaufvorgang ausgeführt oder ausgeführt wird.

Weitere Informationen finden Sie unter "IDropTarget::D rop " im Windows SDK.

COleDropTarget::Register

Rufen Sie diese Funktion auf, um Ihr Fenster mit den OLE-DLLs als gültiges Drop-Ziel zu registrieren.

BOOL Register(CWnd* pWnd);

Parameter

pWnd
Verweist auf das Fenster, das als Drop-Ziel registriert werden soll.

Rückgabewert

Nonzero, wenn die Registrierung erfolgreich ist; andernfalls 0.

Hinweise

Diese Funktion muss aufgerufen werden, damit Dropvorgänge akzeptiert werden.

Weitere Informationen finden Sie unter RegisterDragDrop im Windows SDK.

COleDropTarget::Revoke

Rufen Sie diese Funktion auf, bevor Sie alle Fenster zerstören, die als Drop-Ziel über einen Aufruf von Register registriert wurden, um sie aus der Liste der Drop-Ziele zu entfernen.

virtual void Revoke();

Hinweise

Diese Funktion wird automatisch vom OnDestroy-Handler für das registrierte Fenster aufgerufen, daher ist es in der Regel nicht erforderlich, diese Funktion explizit aufzurufen.

Weitere Informationen finden Sie unter RevokeDragDrop im Windows SDK.

Siehe auch

MFC-Beispiel HIERSVR
MFC-Beispiel-OCLIENT
CCmdTarget-Klasse
Hierarchiediagramm
COleDropSource-Klasse