Freigeben über


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

CObject

CCmdTarget

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::QueryContinueDragwurde.

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