Udostępnij za pośrednictwem


Klasa COleDropSource

Umożliwia przeciąganie danych do miejsca docelowego upuszczania.

Składnia

class COleDropSource : public CCmdTarget

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
COleDropSource::COleDropSource COleDropSource Tworzy obiekt.

Metody publiczne

Nazwa/nazwisko opis
COleDropSource::GiveFeedback Zmienia kursor podczas operacji przeciągania i upuszczania.
COleDropSource::OnBegindrag Obsługuje przechwytywanie myszy podczas operacji przeciągania i upuszczania.
COleDropSource::QueryContinueDrag Sprawdza, czy przeciąganie powinno być kontynuowane.

Uwagi

Klasa COleDropTarget obsługuje część odbieraną operacji przeciągania i upuszczania. Obiekt COleDropSource jest odpowiedzialny za określenie, kiedy rozpoczyna się operacja przeciągania, przekazywanie opinii podczas operacji przeciągania i określanie, kiedy kończy się operacja przeciągania.

Aby użyć COleDropSource obiektu, po prostu wywołaj konstruktor. Upraszcza to proces określania zdarzeń, takich jak kliknięcie myszą, rozpoczynanie operacji przeciągania przy użyciu funkcji COleDataSource::D oDragDrop, COleClientItem::D oDragDrop lub COleServerItem::D oDragDrop. Te funkcje spowodują utworzenie COleDropSource obiektu. Może być konieczne zmodyfikowanie domyślnego COleDropSource zachowania funkcji, które można zastąpić. Te funkcje składowe będą wywoływane w odpowiednim czasie przez strukturę.

Aby uzyskać więcej informacji na temat operacji przeciągania i upuszczania przy użyciu ole, zobacz artykuł Przeciąganie i upuszczanie OLE.

Aby uzyskać więcej informacji, zobacz IDropSource w zestawie Windows SDK.

Hierarchia dziedziczenia

Obiekt CObject

CCmdTarget

COleDropSource

Wymagania

Nagłówek: afxole.h

COleDropSource::COleDropSource

COleDropSource Tworzy obiekt.

COleDropSource();

COleDropSource::GiveFeedback

Wywoływana przez platformę po wywołaniu metody COleDropTarget::OnDragOver lub COleDropTarget::D ragEnter.

virtual SCODE GiveFeedback(DROPEFFECT dropEffect);

Parametry

dropEffect
Efekt, który chcesz wyświetlić użytkownikowi, zwykle wskazując, co się stanie, jeśli w tym momencie wystąpił spadek z wybranymi danymi. Zazwyczaj jest to wartość zwracana przez najnowsze wywołanie obiektu CView::OnDragEnter lub CView::OnDragOver. Może to być co najmniej jeden z następujących elementów:

  • DROPEFFECT_NONE Spadek nie będzie dozwolony.

  • DROPEFFECT_COPY zostanie wykonana operacja kopiowania.

  • DROPEFFECT_MOVE Zostanie wykonana operacja przenoszenia.

  • DROPEFFECT_LINK Zostanie ustanowione łącze z porzuconych danych do oryginalnych danych.

  • DROPEFFECT_SCROLL Operacja przewijania przeciągania ma miejsce lub występuje w obiekcie docelowym.

Wartość zwracana

Zwraca DRAGDROP_S_USEDEFAULTCURSORS, jeśli przeciąganie jest w toku, NOERROR, jeśli nie jest.

Uwagi

Zastąpi tę funkcję, aby przekazać użytkownikowi opinię na temat tego, co się stanie w przypadku wystąpienia spadku w tym momencie. Domyślna implementacja używa domyślnych kursorów OLE. Aby uzyskać więcej informacji na temat operacji przeciągania i upuszczania przy użyciu ole, zobacz artykuł Przeciąganie i upuszczanie OLE.

Aby uzyskać więcej informacji, zobacz IDropSource::GiveFeedback, IDropTarget::D ragOver i IDropTarget::D ragEnter w zestawie Windows SDK.

COleDropSource::OnBegindrag

Wywoływana przez platformę, gdy wystąpi zdarzenie, które może rozpocząć operację przeciągania, na przykład naciśnięcie lewego przycisku myszy.

virtual BOOL OnBeginDrag(CWnd* pWnd);

Parametry

pWnd
Wskazuje okno zawierające wybrane dane.

Wartość zwracana

Bezzerowe, jeśli przeciąganie jest dozwolone, w przeciwnym razie 0.

Uwagi

Zastąpi tę funkcję, jeśli chcesz zmodyfikować sposób uruchamiania procesu przeciągania. Domyślna implementacja przechwytuje mysz i pozostaje w trybie przeciągania, aż użytkownik kliknie lewy lub prawy przycisk myszy lub uderza ESC, w którym momencie zwalnia mysz.

COleDropSource::QueryContinueDrag

Po rozpoczęciu przeciągania ta funkcja jest wywoływana wielokrotnie przez strukturę do momentu anulowania lub ukończenia operacji przeciągania.

virtual SCODE QueryContinueDrag(
    BOOL bEscapePressed,
    DWORD dwKeyState);

Parametry

bEscapePressed
Określa, czy ESC został naciśnięty od ostatniego wywołania metody COleDropSource::QueryContinueDrag.

dwKeyState
Zawiera stan modyfikatora na klawiaturze. Jest to kombinacja dowolnej liczby następujących elementów: MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_MBUTTON i MK_RBUTTON.

Wartość zwracana

DRAGDROP_S_CANCEL, jeśli naciśnięcie ESC lub prawego przycisku lub lewego przycisku zostanie podniesione przed przeciągnięciem. DRAGDROP_S_DROP, jeśli powinna wystąpić operacja upuszczania. W przeciwnym razie S_OK.

Uwagi

Zastąpi tę funkcję, jeśli chcesz zmienić punkt, w którym przeciąganie jest anulowane lub występuje spadek.

Domyślna implementacja inicjuje upuszczanie lub anuluje przeciąganie w następujący sposób. Anuluje operację przeciągania po naciśnięciu ESC lub prawego przycisku myszy. Inicjuje operację upuszczania, gdy lewy przycisk myszy zostanie podniesiony po rozpoczęciu przeciągania. W przeciwnym razie zwraca S_OK i nie wykonuje żadnych dalszych operacji.

Ponieważ ta funkcja jest często wywoływana, powinna być zoptymalizowana jak najwięcej.

Zobacz też

Przykład MFC HIERSVR
Przykład MFC OCLIENT
Klasa CCmdTarget
Wykres hierarchii