Sdílet prostřednictvím


COleDropSource – třída

Umožňuje přetažení dat do cíle přetažení.

Syntaxe

class COleDropSource : public CCmdTarget

Členové

Veřejné konstruktory

Jméno popis
COleDropSource::COleDropSource COleDropSource Vytvoří objekt.

Veřejné metody

Jméno popis
COleDropSource::GiveFeedback Změní kurzor během operace přetažení.
COleDropSource::OnBegindrag Zpracovává zachytávání myši během operace přetažení myší.
COleDropSource::QueryContinueDrag Zkontroluje, jestli má přetahování pokračovat.

Poznámky

COleDropTarget třída zpracovává přijímající část operace přetažení. Objekt COleDropSource je zodpovědný za určení, kdy se spustí operace přetažení, poskytnutí zpětné vazby během operace přetažení a určení, kdy operace přetažení skončí.

Chcete-li použít COleDropSource objekt, stačí volat konstruktor. To zjednodušuje proces určení událostí, jako je kliknutí myší, zahájit operaci přetažení pomocí COleDataSource::D oDragDrop, COleClientItem::D oDragDrop nebo COleServerItem::D oDragDrop funkce. Tyto funkce za vás vytvoří COleDropSource objekt. Můžete chtít upravit výchozí chování přepisovatelných COleDropSource funkcí. Tyto členské funkce budou volána v příslušných časech rozhraním.

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

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

Hierarchie dědičnosti

Objekt CObject

CCmdTarget

COleDropSource

Požadavky

Hlavička: afxole.h

COleDropSource::COleDropSource

COleDropSource Vytvoří objekt.

COleDropSource();

COleDropSource::GiveFeedback

Volání rozhraní po volání COleDropTarget::OnDragOver nebo COleDropTarget::D ragEnter.

virtual SCODE GiveFeedback(DROPEFFECT dropEffect);

Parametry

dropEffect
Efekt, který chcete uživateli zobrazit, obvykle indikuje, co by se stalo, když v tomto okamžiku došlo k poklesu s vybranými daty. Obvykle se jedná o hodnotu vrácenou posledním voláním CView::OnDragEnter nebo CView::OnDragOver. 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.

Vrácená hodnota

Vrátí DRAGDROP_S_USEDEFAULTCURSORS, pokud probíhá přetažení, funkce NOERROR, pokud ne.

Poznámky

Přepište tuto funkci, aby uživateli poskytla zpětnou vazbu o tom, co by se stalo, když v tomto okamžiku došlo k poklesu. Výchozí implementace používá výchozí kurzory OLE. Další informace o operacích přetažení pomocí ole naleznete v článku OLE přetažení.

Další informace naleznete v tématu IDropSource::GiveFeedback, IDropTarget::D ragOver a IDropTarget::D ragEnter v sadě Windows SDK.

COleDropSource::OnBegindrag

Volá se rozhraním, když dojde k události, která by mohla zahájit operaci přetažení, například stisknutí levého tlačítka myši.

virtual BOOL OnBeginDrag(CWnd* pWnd);

Parametry

pWnd
Odkazuje na okno, které obsahuje vybraná data.

Vrácená hodnota

Nenulové, pokud je povoleno přetahování, jinak 0.

Poznámky

Tuto funkci přepište, pokud chcete změnit způsob spuštění procesu přetažení. Výchozí implementace zachytí myš a zůstane v režimu přetažení, dokud uživatel neklikne na levé nebo pravé tlačítko myši nebo stiskne esc, v okamžiku, kdy uvolní myš.

COleDropSource::QueryContinueDrag

Po zahájení přetahování se tato funkce volá opakovaně rozhraním, dokud se operace přetažení nezruší nebo nedokončí.

virtual SCODE QueryContinueDrag(
    BOOL bEscapePressed,
    DWORD dwKeyState);

Parametry

bEscapePressed
Uvádí, zda je klávesa ESC stisknuta od posledního volání COleDropSource::QueryContinueDrag.

dwKeyState
Obsahuje stav modifikačních kláves na klávesnici. 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.

Vrácená hodnota

DRAGDROP_S_CANCEL, pokud je stisknuta klávesa ESC nebo pravé tlačítko nebo tlačítko vlevo před přetažením. DRAGDROP_S_DROP, pokud by měla dojít k operaci odstranění. V opačném případě S_OK.

Poznámky

Tuto funkci přepište, pokud chcete změnit bod, ve kterém je přetažení zrušeno, nebo dojde k přetažení.

Výchozí implementace iniciuje přetažení nebo zruší přetažení následujícím způsobem. Zruší operaci přetažení při stisknutí klávesy ESC nebo pravého tlačítka myši. Spustí operaci přetažení, když se po spuštění přetažení vyvolá levé tlačítko myši. V opačném případě vrátí S_OK a neprovádí žádné další operace.

Vzhledem k tomu, že se tato funkce často volá, měla by být co nejvíce optimalizovaná.

Viz také

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