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