Klasa COleDropTarget
Udostępnia mechanizm komunikacji między oknem a bibliotekami OLE.
Składnia
class COleDropTarget : public CCmdTarget
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
COleDropTarget::COleDropTarget | COleDropTarget Tworzy obiekt. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
COleDropTarget::OnDragEnter | Wywołana po pierwszym wejściu kursora do okna. |
COleDropTarget::OnDragLeave | Wywoływana po przeciągnięciu kursora z okna. |
COleDropTarget::OnDragOver | Wywoływana wielokrotnie, gdy kursor jest przeciągany przez okno. |
COleDropTarget::OndragScroll | Wywoływana w celu określenia, czy kursor jest przeciągany do obszaru przewijania okna. |
COleDropTarget::OnDrop | Wywoływana, gdy dane są porzucane do okna, domyślna procedura obsługi. |
COleDropTarget::OnDropEx | Wywoływana, gdy dane są porzucane do okna, początkowa procedura obsługi. |
COleDropTarget::Register | Rejestruje okno jako prawidłowy element docelowy upuszczania. |
COleDropTarget::Revoke | Powoduje, że okno przestanie być prawidłowym elementem docelowym upuszczania. |
Uwagi
Utworzenie obiektu tej klasy umożliwia okno akceptowanie danych za pośrednictwem mechanizmu przeciągania i upuszczania OLE.
Aby uzyskać okno do akceptowania poleceń upuszczania, należy najpierw utworzyć obiekt COleDropTarget
klasy, a następnie wywołać funkcję Register ze wskaźnikiem do żądanego CWnd
obiektu jako jedyny parametr.
Aby uzyskać więcej informacji na temat operacji przeciągania i upuszczania przy użyciu ole, zobacz artykuł Przeciąganie i upuszczanie OLE.
Hierarchia dziedziczenia
COleDropTarget
Wymagania
Nagłówek: afxole.h
COleDropTarget::COleDropTarget
Tworzy obiekt klasy COleDropTarget
.
COleDropTarget();
Uwagi
Wywołaj metodę Register , aby skojarzyć ten obiekt z oknem.
COleDropTarget::OnDragEnter
Wywoływana przez strukturę po pierwszym przeciągnięciu kursora do okna.
virtual DROPEFFECT OnDragEnter(
CWnd* pWnd,
COleDataObject* pDataObject,
DWORD dwKeyState,
CPoint point);
Parametry
pWnd
Wskazuje okno, w które wprowadza kursor.
pDataObject
Wskazuje obiekt danych zawierający dane, które można usunąć.
dwKeyState
Zawiera stan kluczy modyfikatora. Jest to kombinacja dowolnej liczby następujących elementów: MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_MBUTTON i MK_RBUTTON.
punkt
Zawiera bieżącą lokalizację kursora we współrzędnych klienta.
Wartość zwracana
Efekt, który byłby wynikiem próby spadku w lokalizacji określonej przez punkt. 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.
Uwagi
Zastąpij tę funkcję, aby umożliwić wykonywanie operacji upuszczania w oknie. Domyślna implementacja wywołuje obiekt CView::OnDragEnter, który po prostu zwraca DROPEFFECT_NONE domyślnie.
Aby uzyskać więcej informacji, zobacz IDropTarget::D ragEnter w zestawie WINDOWS SDK.
COleDropTarget::OnDragLeave
Wywoływana przez platformę, gdy kursor opuszcza okno, podczas gdy operacja przeciągania jest w mocy.
virtual void OnDragLeave(CWnd* pWnd);
Parametry
pWnd
Wskazuje okno pozostawi kursor.
Uwagi
Zastąpi tę funkcję, jeśli chcesz użyć specjalnego zachowania, gdy operacja przeciągania opuści określone okno. Domyślna implementacja tej funkcji wywołuje metodę CView::OnDragLeave.
Aby uzyskać więcej informacji, zobacz temat IDropTarget::D ragLeave w zestawie WINDOWS SDK.
COleDropTarget::OnDragOver
Wywoływana przez strukturę, gdy kursor jest przeciągany przez okno.
virtual DROPEFFECT OnDragOver(
CWnd* pWnd,
COleDataObject* pDataObject,
DWORD dwKeyState,
CPoint point);
Parametry
pWnd
Wskazuje okno, nad którymi znajduje się kursor.
pDataObject
Wskazuje obiekt danych, który zawiera dane do usunięcia.
dwKeyState
Zawiera stan kluczy modyfikatora. Jest to kombinacja dowolnej liczby następujących elementów: MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_MBUTTON i MK_RBUTTON.
punkt
Zawiera bieżącą lokalizację kursora we współrzędnych klienta.
Wartość zwracana
Efekt, który byłby wynikiem próby spadku w lokalizacji określonej przez punkt. 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 Wskazuje, że operacja przeciągania przewijania ma wystąpić lub występuje w obiekcie docelowym.
Uwagi
Ta funkcja powinna zostać zastąpiona, aby umożliwić wykonywanie operacji upuszczania w oknie. Domyślna implementacja tej funkcji wywołuje funkcję CView::OnDragOver, która domyślnie zwraca DROPEFFECT_NONE. Ponieważ ta funkcja jest często wywoływana podczas operacji przeciągania i upuszczania, powinna być zoptymalizowana jak najwięcej.
Aby uzyskać więcej informacji, zobacz IDropTarget::D ragOver w zestawie Windows SDK.
Przykład
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
Wywoływana przez platformę przed wywołaniem metody OnDragEnter lub OnDragOver w celu określenia, czy punkt znajduje się w regionie przewijania.
virtual DROPEFFECT OnDragScroll(
CWnd* pWnd,
DWORD dwKeyState,
CPoint point);
Parametry
pWnd
Wskazuje okno, nad które znajduje się kursor.
dwKeyState
Zawiera stan kluczy modyfikatora. Jest to kombinacja dowolnej liczby następujących elementów: MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_MBUTTON i MK_RBUTTON.
punkt
Zawiera lokalizację kursora w pikselach względem ekranu.
Wartość zwracana
Efekt, który byłby wynikiem próby spadku w lokalizacji określonej przez punkt. 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 Wskazuje, że operacja przeciągania przewijania ma wystąpić lub występuje w obiekcie docelowym.
Uwagi
Zastąpi tę funkcję, gdy chcesz zapewnić specjalne zachowanie dla tego zdarzenia. Domyślna implementacja tej funkcji wywołuje funkcję CView::OnDragScroll, która zwraca DROPEFFECT_NONE i przewija okno po przeciągnięciu kursora do domyślnego regionu przewijania wewnątrz obramowania okna.
COleDropTarget::OnDrop
Wywoływana przez platformę, gdy ma wystąpić operacja upuszczania.
virtual BOOL OnDrop(
CWnd* pWnd,
COleDataObject* pDataObject,
DROPEFFECT dropEffect,
CPoint point);
Parametry
pWnd
Wskazuje okno, nad które znajduje się kursor.
pDataObject
Wskazuje obiekt danych, który zawiera dane do usunięcia.
dropEffect
Efekt, który użytkownik wybrał dla operacji upuszczania. Może to być co najmniej jeden z następujących elementów:
DROPEFFECT_COPY zostanie wykonana operacja kopiowania.
DROPEFFECT_MOVE Zostanie wykonana operacja przenoszenia.
DROPEFFECT_LINK Zostanie ustanowione łącze z porzuconych danych do oryginalnych danych.
punkt
Zawiera lokalizację kursora w pikselach względem ekranu.
Wartość zwracana
Nonzero, jeśli upuszczanie zakończyło się powodzeniem; w przeciwnym razie 0.
Uwagi
Platforma najpierw wywołuje element OnDropEx. OnDropEx
Jeśli funkcja nie obsługuje upuszczania, struktura wywołuje tę funkcję składową , OnDrop
. Zazwyczaj aplikacja zastępuje element OnDropEx w klasie view, aby obsłużyć przeciąganie i upuszczanie prawego przycisku myszy. Zazwyczaj klasa Widok OnDrop służy do obsługi prostego przeciągania i upuszczania.
Domyślna implementacja wywołań COleDropTarget::OnDrop
CView ::OnDrop, która po prostu zwraca wartość FALSE domyślnie.
Aby uzyskać więcej informacji, zobacz temat IDropTarget::D rop w zestawie Windows SDK.
COleDropTarget::OnDropEx
Wywoływana przez platformę, gdy ma wystąpić operacja upuszczania.
virtual DROPEFFECT OnDropEx(
CWnd* pWnd,
COleDataObject* pDataObject,
DROPEFFECT dropDefault,
DROPEFFECT dropList,
CPoint point);
Parametry
pWnd
Wskazuje okno, nad które znajduje się kursor.
pDataObject
Wskazuje obiekt danych, który zawiera dane do usunięcia.
dropDefault
Efekt, który użytkownik wybrał dla domyślnej operacji upuszczania na podstawie bieżącego stanu klucza. Może to być DROPEFFECT_NONE. Efekty upuszczania zostały omówione w sekcji Uwagi.
dropList
Lista efektów upuszczania, które obsługuje źródło drop. Wartości efektu upuszczania można łączyć przy użyciu operacji bitowej OR (|
). Efekty upuszczania zostały omówione w sekcji Uwagi.
punkt
Zawiera lokalizację kursora w pikselach względem ekranu.
Wartość zwracana
Efekt upuszczania, który wynikał z próby upuszczania w lokalizacji określonej przez punkt. Efekty upuszczania zostały omówione w sekcji Uwagi.
Uwagi
Platforma najpierw wywołuje tę funkcję. Jeśli nie obsługuje upuszczania, platforma wywołuje metodę OnDrop. Zazwyczaj zastąpisz funkcję OnDropEx w klasie widok, aby obsługiwać przeciąganie i upuszczanie prawego przycisku myszy. Zazwyczaj klasa widoków OnDrop służy do obsługi obsługi prostego przeciągania i upuszczania.
Domyślna implementacja wywołań COleDropTarget::OnDropEx
CView ::OnDropEx. Domyślnie funkcja CView::OnDropEx po prostu zwraca fikcyjną wartość, aby wskazać, że należy wywołać funkcję składową OnDrop .
Efekty upuszczania opisują akcję skojarzną z operacją upuszczania. Zobacz następującą listę efektów upuszczania:
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 Wskazuje, że operacja przeciągania przewijania ma wystąpić lub występuje w obiekcie docelowym.
Aby uzyskać więcej informacji, zobacz temat IDropTarget::D rop w zestawie Windows SDK.
COleDropTarget::Register
Wywołaj tę funkcję, aby zarejestrować okno przy użyciu bibliotek DLL OLE jako prawidłowego miejsca docelowego upuszczania.
BOOL Register(CWnd* pWnd);
Parametry
pWnd
Wskazuje okno, które ma zostać zarejestrowane jako cel upuszczania.
Wartość zwracana
Bezzerowe, jeśli rejestracja zakończyła się pomyślnie; w przeciwnym razie 0.
Uwagi
Ta funkcja musi być wywoływana, aby operacje upuszczania zostały zaakceptowane.
Aby uzyskać więcej informacji, zobacz RegisterDragDrop w zestawie Windows SDK.
COleDropTarget::Revoke
Wywołaj tę funkcję przed zniszczeniem dowolnego okna zarejestrowanego jako obiekt docelowy upuszczania za pomocą wywołania funkcji Register , aby usunąć ją z listy miejsc docelowych usuwania.
virtual void Revoke();
Uwagi
Ta funkcja jest wywoływana automatycznie z programu obsługi OnDestroy dla okna, które zostało zarejestrowane, więc zwykle nie jest konieczne jawne wywołanie tej funkcji.
Aby uzyskać więcej informacji, zobacz RevokeDragDrop w zestawie Windows SDK.
Zobacz też
Przykład MFC HIERSVR
Przykład MFC OCLIENT
Klasa CCmdTarget
Wykres hierarchii
Klasa COleDropSource