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
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