COleDropSource-Klasse
Ermöglicht das Ziehen von Daten auf ein Drop-Ziel.
Syntax
class COleDropSource : public CCmdTarget
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
COleDropSource::COleDropSource | Erstellt ein COleDropSource -Objekt. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
COleDropSource::GiveFeedback | Ändert den Cursor während eines Drag-and-Drop-Vorgangs. |
COleDropSource::OnBeginDrag | Behandelt die Mausaufnahme während eines Drag-and-Drop-Vorgangs. |
COleDropSource::QueryContinueDrag | Überprüft, ob das Ziehen fortgesetzt werden soll. |
Hinweise
Die COleDropTarget-Klasse behandelt den empfangenden Teil des Drag-and-Drop-Vorgangs. Das COleDropSource
Objekt ist dafür verantwortlich, zu bestimmen, wann ein Ziehvorgang beginnt, Feedback während des Ziehvorgangs bereitzustellen und zu bestimmen, wann der Ziehvorgang endet.
Um ein COleDropSource
Objekt zu verwenden, rufen Sie einfach den Konstruktor auf. Dies vereinfacht den Prozess der Ermittlung der Ereignisse, z. B. eines Mausklicks, einen Ziehvorgang mit COleDataSource::D oDragDrop, COleClientItem::D oDragDrop oder COleServerItem::D oDragDrop-Funktion . Diese Funktionen erstellen ein COleDropSource
Objekt für Sie. Möglicherweise möchten Sie das Standardverhalten der COleDropSource
überschreibbaren Funktionen ändern. Diese Memberfunktionen werden zu den entsprechenden Zeiten vom Framework aufgerufen.
Weitere Informationen zu Drag-and-Drop-Vorgängen mit OLE finden Sie im Artikel "OLE-Ziehen und Ablegen".
Weitere Informationen finden Sie unter IDropSource im Windows SDK.
Vererbungshierarchie
COleDropSource
Anforderungen
Kopfzeile: afxole.h
COleDropSource::COleDropSource
Erstellt ein COleDropSource
-Objekt.
COleDropSource();
COleDropSource::GiveFeedback
Wird vom Framework aufgerufen, nachdem COleDropTarget::OnDragOver oder COleDropTarget::D ragEnter aufgerufen wurde.
virtual SCODE GiveFeedback(DROPEFFECT dropEffect);
Parameter
dropEffect
Der Effekt, den Sie dem Benutzer anzeigen möchten, gibt in der Regel an, was passiert, wenn an diesem Punkt mit den ausgewählten Daten ein Drop aufgetreten ist. In der Regel ist dies der Wert, der vom letzten Aufruf von CView::OnDragEnter oder CView::OnDragOver zurückgegeben wird. 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.
Rückgabewert
Gibt DRAGDROP_S_USEDEFAULTCURSORS zurück, wenn das Ziehen ausgeführt wird, NOERROR, wenn dies nicht der Fehler ist.
Hinweise
Überschreiben Sie diese Funktion, um dem Benutzer Feedback darüber zu geben, was passieren würde, wenn an diesem Punkt ein Drop aufgetreten ist. Die Standardimplementierung verwendet die OLE-Standardcursor. Weitere Informationen zu Drag-and-Drop-Vorgängen mit OLE finden Sie im Artikel "OLE-Ziehen und Ablegen".
Weitere Informationen finden Sie unter "IDropSource::GiveFeedback", "IDropTarget::D ragOver" und "IDropTarget::D ragEnter " im Windows SDK.
COleDropSource::OnBeginDrag
Wird vom Framework aufgerufen, wenn ein Ereignis auftritt, das einen Ziehvorgang starten kann, z. B. das Drücken der linken Maustaste.
virtual BOOL OnBeginDrag(CWnd* pWnd);
Parameter
pWnd
Verweist auf das Fenster, das die ausgewählten Daten enthält.
Rückgabewert
Nonzero, wenn das Ziehen zulässig ist, andernfalls 0.
Hinweise
Überschreiben Sie diese Funktion, wenn Sie die Art und Weise ändern möchten, wie der Ziehvorgang gestartet wird. Die Standardimplementierung erfasst die Maus und bleibt im Ziehmodus, bis der Benutzer auf die linke oder rechte Maustaste klickt oder ESC erreicht, zu dem zeitpunkt, zu dem die Maus losgelassen wird.
COleDropSource::QueryContinueDrag
Nachdem das Ziehen begonnen hat, wird diese Funktion wiederholt vom Framework aufgerufen, bis der Ziehvorgang abgebrochen oder abgeschlossen ist.
virtual SCODE QueryContinueDrag(
BOOL bEscapePressed,
DWORD dwKeyState);
Parameter
bEscapePressed
Gibt an, ob die ESC-Taste seit dem letzten Aufruf gedrückt COleDropSource::QueryContinueDrag
wurde.
dwKeyState
Enthält den Status der Modifizierertasten auf der Tastatur. Dies ist eine Kombination aus einer beliebigen Anzahl von Folgenden: MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_MBUTTON und MK_RBUTTON.
Rückgabewert
DRAGDROP_S_CANCEL, wenn die ESC-Taste oder die rechte Taste gedrückt wird oder die linke Taste vor dem Ziehen ausgelöst wird. DRAGDROP_S_DROP, wenn ein Ablagevorgang erfolgen soll. Andernfalls S_OK.
Hinweise
Überschreiben Sie diese Funktion, wenn Sie den Punkt ändern möchten, an dem das Ziehen abgebrochen wird oder ein Drop auftritt.
Die Standardimplementierung initiiert den Ablagevorgang oder bricht das Ziehen wie folgt ab. Sie bricht einen Ziehvorgang ab, wenn die ESC-Taste oder die rechte Maustaste gedrückt wird. Er initiiert einen Drop-Vorgang, wenn die linke Maustaste ausgelöst wird, nachdem das Ziehen gestartet wurde. Andernfalls wird S_OK zurückgegeben und keine weiteren Vorgänge ausgeführt.
Da diese Funktion häufig aufgerufen wird, sollte sie so weit wie möglich optimiert werden.
Siehe auch
MFC-Beispiel HIERSVR
MFC-Beispiel-OCLIENT
CCmdTarget-Klasse
Hierarchiediagramm