Sdílet prostřednictvím


COleDropTarget – třída

Poskytuje komunikační mechanismus mezi oknem a knihovnami OLE.

Syntaxe

class COleDropTarget : public CCmdTarget

Členové

Veřejné konstruktory

Název Popis
COleDropTarget::COleDropTarget COleDropTarget Vytvoří objekt.

Veřejné metody

Název Popis
COleDropTarget::OnDragEnter Volá se při prvním vstupu kurzoru do okna.
COleDropTarget::OnDragLeave Volá se při přetažení kurzoru z okna.
COleDropTarget::OnDragOver Volá se opakovaně, když je kurzor přetažen přes okno.
COleDropTarget::OnDragScroll Volána k určení, zda je kurzor přetažen do oblasti posouvání okna.
COleDropTarget::OnDrop Volá se při vyřazení dat do okna, výchozí obslužná rutina.
COleDropTarget::OnDropEx Volá se při vyřazení dat do okna, počáteční obslužné rutiny.
COleDropTarget::Register Zaregistruje okno jako platný cíl pro odstranění.
COleDropTarget::Revoke Způsobí, že okno přestane být platným cílem přetažení.

Poznámky

Vytvoření objektu této třídy umožňuje okno přijímat data prostřednictvím mechanismu přetažení a přetažení OLE.

Chcete-li získat okno pro příjem příkazů drop, měli byste nejprve vytvořit objekt COleDropTarget třídy a potom volat funkci Register s ukazatelem na požadovaný CWnd objekt jako jediný parametr.

Další informace o operacích přetažení pomocí ole naleznete v článku OLE přetažení.

Hierarchie dědičnosti

Objekt CObject

CCmdTarget

COleDropTarget

Požadavky

Hlavička: afxole.h

COleDropTarget::COleDropTarget

Vytvoří objekt třídy COleDropTarget.

COleDropTarget();

Poznámky

Volání Zaregistrovat pro přidružení tohoto objektu k oknem.

COleDropTarget::OnDragEnter

Volá se rozhraním, když je kurzor poprvé přetažen do okna.

virtual DROPEFFECT OnDragEnter(
    CWnd* pWnd,
    COleDataObject* pDataObject,
    DWORD dwKeyState,
    CPoint point);

Parametry

pWnd
Odkazuje na okno, do které kurzor zadává.

pDataObject
Odkazuje na datový objekt obsahující data, která lze vynechat.

dwKeyState
Obsahuje stav modifikačních klíčů. Jedná se o kombinaci libovolného počtu následujících položek: MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_MBUTTON a MK_RBUTTON.

bod
Obsahuje aktuální umístění kurzoru v souřadnicích klienta.

Návratová hodnota

Výsledek, který by měl vést k pokusu o pokles v umístění určeném bodem. Může to být jedna nebo více z následujících možností:

  • DROPEFFECT_NONE pokles by nebyl povolen.

  • DROPEFFECT_COPY byla provedena operace kopírování.

  • DROPEFFECT_MOVE byla provedena operace přesunutí.

  • DROPEFFECT_LINK vytvoří se propojení z vyřazených dat s původními daty.

  • DROPEFFECT_SCROLL operace posouvání přetažením se chystá dojít nebo k ní dochází v cíli.

Poznámky

Tuto funkci přepište, aby se v okně mohly vyskytovat operace odstraňování. Výchozí implementace volá CView::OnDragEnter, který jednoduše vrací DROPEFFECT_NONE ve výchozím nastavení.

Další informace naleznete v tématu IDropTarget::D ragEnter v sadě Windows SDK.

COleDropTarget::OnDragLeave

Volá se architekturou, když kurzor opustí okno, zatímco operace přetažení je v platnosti.

virtual void OnDragLeave(CWnd* pWnd);

Parametry

pWnd
Odkazuje na okno, které kurzor opouští.

Poznámky

Tuto funkci přepište, pokud chcete speciální chování, když operace přetažení opustí zadané okno. Výchozí implementace této funkce volá CView::OnDragLeave.

Další informace naleznete v tématu IDropTarget::D ragLeave v sadě Windows SDK.

COleDropTarget::OnDragOver

Volá se rozhraním, když je kurzor přetažen přes okno.

virtual DROPEFFECT OnDragOver(
    CWnd* pWnd,
    COleDataObject* pDataObject,
    DWORD dwKeyState,
    CPoint point);

Parametry

pWnd
Odkazuje na okno, nad kterým je kurzor.

pDataObject
Odkazuje na datový objekt, který obsahuje data, která se mají vynechat.

dwKeyState
Obsahuje stav modifikačních klíčů. Jedná se o kombinaci libovolného počtu následujících položek: MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_MBUTTON a MK_RBUTTON.

bod
Obsahuje aktuální umístění kurzoru v souřadnicích klienta.

Návratová hodnota

Výsledek, který by měl vést k pokusu o pokles v umístění určeném bodem. Může to být jedna nebo více z následujících možností:

  • DROPEFFECT_NONE pokles by nebyl povolen.

  • DROPEFFECT_COPY byla provedena operace kopírování.

  • DROPEFFECT_MOVE byla provedena operace přesunutí.

  • DROPEFFECT_LINK vytvoří se propojení z vyřazených dat s původními daty.

  • DROPEFFECT_SCROLL Označuje, že operace posouvání přetažením pravděpodobně nastane nebo se vyskytuje v cíli.

Poznámky

Tato funkce by měla být přepsána, aby se v okně mohly vyskytovat operace odstraňování. Výchozí implementace této funkce volá CView::OnDragOver, která vrací DROPEFFECT_NONE ve výchozím nastavení. Vzhledem k tomu, že se tato funkce často volá během operace přetažení myší, měla by být optimalizována co nejvíce.

Další informace naleznete v tématu IDropTarget::D ragOver v sadě Windows SDK.

Příklad

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

Volal rozhraní před voláním OnDragEnter nebo OnDragOver určit, zda bod je v oblasti posouvání.

virtual DROPEFFECT OnDragScroll(
    CWnd* pWnd,
    DWORD dwKeyState,
    CPoint point);

Parametry

pWnd
Odkazuje na okno, na které je kurzor právě překonaný.

dwKeyState
Obsahuje stav modifikačních klíčů. Jedná se o kombinaci libovolného počtu následujících položek: MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_MBUTTON a MK_RBUTTON.

bod
Obsahuje umístění kurzoru v pixelech vzhledem k obrazovce.

Návratová hodnota

Výsledek, který by měl vést k pokusu o pokles v umístění určeném bodem. Může to být jedna nebo více z následujících možností:

  • DROPEFFECT_NONE pokles by nebyl povolen.

  • DROPEFFECT_COPY byla provedena operace kopírování.

  • DROPEFFECT_MOVE byla provedena operace přesunutí.

  • DROPEFFECT_LINK vytvoří se propojení z vyřazených dat s původními daty.

  • DROPEFFECT_SCROLL Označuje, že operace posouvání přetažením pravděpodobně nastane nebo se vyskytuje v cíli.

Poznámky

Tuto funkci přepište, pokud chcete pro tuto událost poskytnout zvláštní chování. Výchozí implementace této funkce volá CView::OnDragScroll, která vrátí DROPEFFECT_NONE a posune okno při přetažení kurzoru do výchozí oblasti posouvání uvnitř ohraničení okna.

COleDropTarget::OnDrop

Volá se rozhraním, když dojde k operaci vyřazení.

virtual BOOL OnDrop(
    CWnd* pWnd,
    COleDataObject* pDataObject,
    DROPEFFECT dropEffect,
    CPoint point);

Parametry

pWnd
Odkazuje na okno, na které je kurzor právě překonaný.

pDataObject
Odkazuje na datový objekt, který obsahuje data, která se mají vynechat.

dropEffect
Efekt, který uživatel zvolil pro operaci odstranění. Může to být jedna nebo více z následujících možností:

  • DROPEFFECT_COPY byla provedena operace kopírování.

  • DROPEFFECT_MOVE byla provedena operace přesunutí.

  • DROPEFFECT_LINK vytvoří se propojení z vyřazených dat s původními daty.

bod
Obsahuje umístění kurzoru v pixelech vzhledem k obrazovce.

Návratová hodnota

Nenulové, pokud je pokles úspěšný; jinak 0.

Poznámky

Architektura nejprve volá OnDropEx. OnDropEx Pokud funkce nezpracuje pokles, architektura pak volá tuto člennou funkci, OnDrop. Aplikace obvykle přepíše OnDropEx ve třídě zobrazení pro zpracování pravého tlačítka myši přetažení. Třída zobrazení OnDrop se obvykle používá k zpracování jednoduchého přetažení.

Výchozí implementace COleDropTarget::OnDrop volání CView::OnDrop, která jednoduše vrátí HODNOTU FALSE ve výchozím nastavení.

Další informace naleznete v tématu IDropTarget::D rop v sadě Windows SDK.

COleDropTarget::OnDropEx

Volá se rozhraním, když dojde k operaci vyřazení.

virtual DROPEFFECT OnDropEx(
    CWnd* pWnd,
    COleDataObject* pDataObject,
    DROPEFFECT dropDefault,
    DROPEFFECT dropList,
    CPoint point);

Parametry

pWnd
Odkazuje na okno, na které je kurzor právě překonaný.

pDataObject
Odkazuje na datový objekt, který obsahuje data, která se mají vynechat.

dropDefault
Efekt, který uživatel zvolil pro výchozí operaci přetažení na základě aktuálního stavu klíče. Může to být DROPEFFECT_NONE. Efekty přetažení jsou popsány v části Poznámky.

dropList
Seznam efektů přetažení, které zdroj přetažení podporuje. Hodnoty efektu přetažení lze kombinovat pomocí bitové operace OR (|). Efekty přetažení jsou popsány v části Poznámky.

bod
Obsahuje umístění kurzoru v pixelech vzhledem k obrazovce.

Návratová hodnota

Efekt přetažení, který byl výsledkem pokusu o odstranění v umístění určeném bodem. Efekty přetažení jsou popsány v části Poznámky.

Poznámky

Architektura nejprve volá tuto funkci. Pokud tento pokles nezpracuje, architektura pak volá OnDrop. Obvykle přepíšete OnDropEx ve třídě zobrazení tak, aby podporovalo přetahování pravého tlačítka myši. Třída zobrazení OnDrop se obvykle používá ke zpracování případu podpory jednoduchého přetažení.

Výchozí implementace COleDropTarget::OnDropEx volání CView::OnDropEx. Ve výchozím nastavení CView::OnDropEx jednoduše vrátí fiktivní hodnotu označující , že by měla být volána členová funkce OnDrop .

Efekty přetažení popisují akci přidruženou k operaci přetažení. Podívejte se na následující seznam efektů přetažení:

  • DROPEFFECT_NONE pokles by nebyl povolen.

  • DROPEFFECT_COPY byla provedena operace kopírování.

  • DROPEFFECT_MOVE byla provedena operace přesunutí.

  • DROPEFFECT_LINK vytvoří se propojení z vyřazených dat s původními daty.

  • DROPEFFECT_SCROLL Označuje, že operace posouvání přetažením pravděpodobně nastane nebo se vyskytuje v cíli.

Další informace naleznete v tématu IDropTarget::D rop v sadě Windows SDK.

COleDropTarget::Register

Voláním této funkce zaregistrujete okno do knihoven DLL OLE jako platný cíl přetažení.

BOOL Register(CWnd* pWnd);

Parametry

pWnd
Odkazuje na okno, které se má zaregistrovat jako cíl pro odstranění.

Návratová hodnota

Nenulové, pokud je registrace úspěšná; jinak 0.

Poznámky

Tato funkce musí být volána, aby se akceptovala operace přetažení.

Další informace naleznete v tématu RegisterDragDrop v sadě Windows SDK.

COleDropTarget::Revoke

Tuto funkci zavolejte před zničením libovolného okna, které bylo zaregistrováno jako cíl pro vyřazení prostřednictvím volání Zaregistrovat , abyste ji odebrali ze seznamu cílů.

virtual void Revoke();

Poznámky

Tato funkce se volá automaticky z obslužné rutiny OnDestroy pro zaregistrované okno, takže obvykle není nutné tuto funkci volat explicitně.

Další informace naleznete v tématu RevokeDragDrop v sadě Windows SDK.

Viz také

MFC – Ukázka HIERSVR
MFC – ukázka OCLIENT
CCmdTarget – třída
Graf hierarchie
COleDropSource – třída