COleDropSource – třída
Umožňuje přetažení dat do cíle přetažení.
Syntaxe
class COleDropSource : public CCmdTarget
Členové
Veřejné konstruktory
Název | Popis |
---|---|
COleDropSource::COleDropSource | COleDropSource Vytvoří objekt. |
Veřejné metody
Název | 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
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.
Návratová 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.
Návratová 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.
Návratová 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