Megosztás a következőn keresztül:


COleDropSource osztály

Megjegyzés:

A Microsoft Foundation Classes (MFC) könyvtár továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.

Lehetővé teszi, hogy az adatok áthúzhatók legyenek a cél célhelyeire.

Szemantika

class COleDropSource : public CCmdTarget

Tagok

Nyilvános konstruktorok

Név Description
COleDropSource::COleDropSource Egy COleDropSource objektumot hoz létre.

Nyilvános metódusok

Név Description
COleDropSource::GiveFeedback Húzza a kurzort egy húzási művelet során.
COleDropSource::OnBeginDrag Az egérrögzítést egy húzási művelet során kezeli.
COleDropSource::QueryContinueDrag Ellenőrzi, hogy folytatódjon-e a húzás.

Megjegyzések

A COleDropTarget osztály kezeli a húzási művelet fogadó részét. Az COleDropSource objektum feladata annak meghatározása, hogy mikor kezdődik el egy húzási művelet, visszajelzést ad a húzási művelet során, és meghatározza, hogy mikor fejeződik be a húzási művelet.

Objektum használatához COleDropSource hívja meg a konstruktort. Ez leegyszerűsíti annak a folyamatnak a meghatározását, hogy milyen események, például egérkattintás esetén kezdődnek a húzási műveletek a COleDataSource::D oDragDrop, COleClientItem::D oDragDrop vagy COleServerItem::D oDragDrop függvény használatával. Ezek a függvények létrehoznak egy COleDropSource objektumot. Előfordulhat, hogy módosítani szeretné a felülírható függvények alapértelmezett viselkedését COleDropSource . Ezeket a tagfüggvényeket a keretrendszer a megfelelő időpontokban hívja meg.

Az OLE használatával végzett húzási műveletekről további információt az OLE húzással foglalkozó cikkben talál.

További információ: IDropSource a Windows SDK-ban.

Öröklési hierarchia

CObject

CCmdTarget

COleDropSource

Requirements

Fejléc: afxole.h

COleDropSource::COleDropSource

Egy COleDropSource objektumot hoz létre.

COleDropSource();

COleDropSource::GiveFeedback

A keretrendszer meghívta a COleDropTarget::OnDragOver vagy COleDropTarget::D ragEnter hívását követően.

virtual SCODE GiveFeedback(DROPEFFECT dropEffect);

Paraméterek

dropEffect
A felhasználó számára megjeleníteni kívánt hatás, amely általában azt jelzi, hogy mi történne, ha a kiválasztott adatokkal egy adott időpontban esés történne. Ez általában a CView::OnDragEnter vagy CView::OnDragOver legutóbbi hívása által visszaadott érték. Az alábbiak közül egy vagy több lehet:

  • DROPEFFECT_NONE Egy csepp nem engedélyezett.

  • DROPEFFECT_COPY másolási műveletet hajtanak végre.

  • DROPEFFECT_MOVE Áthelyezési műveletet hajtanak végre.

  • DROPEFFECT_LINK Létrejön egy hivatkozás az elvetett adatokról az eredeti adatokra.

  • DROPEFFECT_SCROLL Egy húzási görgetési művelet készül, vagy a célban történik.

Visszaadott érték

Ha a húzás folyamatban van, akkor DRAGDROP_S_USEDEFAULTCURSORS a NOERROR értéket adja vissza, ha nem.

Megjegyzések

Bírálja felül ezt a függvényt, hogy visszajelzést küldjön a felhasználónak arról, hogy mi történne, ha egy esés történne ezen a ponton. Az alapértelmezett implementáció az OLE alapértelmezett kurzorait használja. Az OLE használatával végzett húzási műveletekről további információt az OLE húzással foglalkozó cikkben talál.

További információ: IDropSource::GiveFeedback, IDropTarget::D ragOver és IDropTarget::D ragEnter a Windows SDK-ban.

COleDropSource::OnBeginDrag

A keretrendszer meghívta, amikor olyan esemény történik, amely elindíthat egy húzási műveletet, például a bal egérgomb lenyomásával.

virtual BOOL OnBeginDrag(CWnd* pWnd);

Paraméterek

pWnd
A kijelölt adatokat tartalmazó ablakra mutat.

Visszaadott érték

Nonzero, ha a húzás engedélyezett, ellenkező esetben 0.

Megjegyzések

Bírálja felül ezt a függvényt, ha módosítani szeretné a húzási folyamat indításának módját. Az alapértelmezett implementáció rögzíti az egeret, és addig húzási módban marad, amíg a felhasználó nem kattint a bal vagy a jobb egér gombjára, vagy el nem éri az ESC-t, amikor felengedi az egeret.

COleDropSource::QueryContinueDrag

A húzás elkezdése után ezt a függvényt a keretrendszer ismételten meghívja, amíg a húzási művelet nem fejeződik be vagy megszakad.

virtual SCODE QueryContinueDrag(
    BOOL bEscapePressed,
    DWORD dwKeyState);

Paraméterek

bEscapePressed
Azt jelzi, hogy az ESC-kulcs lenyomva lett-e a legutóbbi hívás COleDropSource::QueryContinueDragóta.

dwKeyState
A billentyűzet módosítóbillentyűinek állapotát tartalmazza. Ez a következők tetszőleges számának kombinációja: MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_MBUTTON és MK_RBUTTON.

Visszaadott érték

DRAGDROP_S_CANCEL ha az ESC billentyűt vagy a jobb gombot lenyomja, vagy a bal gomb a húzás megkezdése előtt fel van emelve. DRAGDROP_S_DROP, hogy szükség van-e dobási műveletre. Ellenkező esetben S_OK.

Megjegyzések

Felülbírálhatja ezt a függvényt, ha módosítani szeretné a húzás megszakításának vagy egy ugrásnak a pontját.

Az alapértelmezett implementáció az alábbiak szerint kezdeményezi a lehúzást, vagy megszakítja a húzást. Az ESC billentyű vagy a jobb egérgomb lenyomásakor megszakítja az húzási műveletet. A művelet akkor indít el egy műveletet, ha a bal egérgomb a húzás megkezdése után fel van emelve. Ellenkező esetben S_OK ad vissza, és nem végez további műveleteket.

Mivel ezt a függvényt gyakran hívják, a lehető legnagyobb mértékben optimalizálni kell.

Lásd még

MFC-minta HIERSVR
MFC-minta OCLIENT
CCmdTarget osztály
hierarchiadiagram