Klasa COleDropTarget

Udostępnia mechanizm komunikacji między oknem a bibliotekami OLE.

Składnia

class COleDropTarget : public CCmdTarget

Członkowie

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

Cobject

Ccmdtarget

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