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