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


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

Biztosítja az ablak és az OLE-kódtárak közötti kommunikációs mechanizmust.

Szemantika

class COleDropTarget : public CCmdTarget

Tagok

Nyilvános konstruktorok

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

Nyilvános metódusok

Név Description
COleDropTarget::OnDragEnter Akkor hívjuk meg, amikor a kurzor először belép az ablakba.
COleDropTarget::OnDragLeave A kurzor az ablakból való húzásakor hívható meg.
COleDropTarget::OnDragOver Ismétlődő hívás, amikor a kurzort az ablak fölé húzza.
COleDropTarget::OnDragScroll Annak megállapításához, hogy a kurzor az ablak görgetési régiójába van-e húzva.
COleDropTarget::OnDrop Az alapértelmezett kezelő az adatok ablakba dobásakor hívható meg.
COleDropTarget::OnDropEx Az első kezelő az adatok ablakba dobásakor hívható meg.
COleDropTarget::Regisztráció Érvényes célként regisztrálja az ablakot.
COleDropTarget::Visszavonás Ez azt eredményezi, hogy az ablak már nem érvényes dobási cél.

Megjegyzések

Az osztály objektumának létrehozása lehetővé teszi, hogy az ablakok az OLE húzási mechanizmuson keresztül fogadják el az adatokat.

Ahhoz, hogy egy ablak fogadja el az elvetési parancsokat, először létre kell hoznia egy objektumot az COleDropTarget osztályból, majd egyetlen paraméterként meg kell hívnia a Register függvényt a kívánt CWnd objektumra mutató mutatóval.

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.

Öröklési hierarchia

CObject

CCmdTarget

COleDropTarget

Requirements

Fejléc: afxole.h

COleDropTarget::COleDropTarget

Osztályobjektumot COleDropTargethoz létre.

COleDropTarget();

Megjegyzések

Az objektum ablakhoz való társításához hívja meg a Register billentyűt.

COleDropTarget::OnDragEnter

A keretrendszer meghívja, amikor a kurzor először az ablakba húzódik.

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

Paraméterek

pWnd
A kurzor által beírt ablakra mutat.

pDataObject
Az eldobott adatokat tartalmazó adatobjektumra mutat.

dwKeyState
A módosító kulcsok á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.

Pont
A kurzor aktuális helyét tartalmazza az ügyfélkoordinátákban.

Visszaadott érték

Az a hatás, amely akkor következne be, ha a pont által megadott helyen kísérelnének meg egy cseppet. 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.

Megjegyzések

Felülbírálja ezt a függvényt, hogy lehetővé tegye az elejtési műveletek végrehajtását az ablakban. Az alapértelmezett implementáció meghívja a CView::OnDragEnter parancsot, amely alapértelmezés szerint DROPEFFECT_NONE ad vissza.

További információ: IDropTarget::D ragEnter a Windows SDK-ban.

COleDropTarget::OnDragLeave

A keretrendszer meghívja, amikor a kurzor elhagyja az ablakot, miközben egy húzási művelet van érvényben.

virtual void OnDragLeave(CWnd* pWnd);

Paraméterek

pWnd
Arra az ablakra mutat, amelyet a kurzor elhagy.

Megjegyzések

Felülbírálja ezt a függvényt, ha különleges viselkedést szeretne, amikor az húzási művelet elhagyja a megadott ablakot. A függvény alapértelmezett implementációja a CView::OnDragLeave függvényt hívja meg.

További információ: IDropTarget::D ragLeave a Windows SDK-ban.

COleDropTarget::OnDragOver

A keretrendszer meghívja, amikor a kurzort az ablak fölé húzza.

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

Paraméterek

pWnd
Arra az ablakra mutat, amelyen a kurzor túl van.

pDataObject
Az elvetendő adatokat tartalmazó adatobjektumra mutat.

dwKeyState
A módosító kulcsok á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.

Pont
A kurzor aktuális helyét tartalmazza az ügyfélkoordinátákban.

Visszaadott érték

Az a hatás, amely akkor következne be, ha a pont által megadott helyen kísérelnének meg egy cseppet. 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 Azt jelzi, hogy egy húzási görgetési művelet készül vagy a célban történik.

Megjegyzések

Ezt a függvényt felül kell bírálni, hogy lehetővé tegye az elejtési műveletek végrehajtását az ablakban. A függvény alapértelmezett implementációja a CView::OnDragOver, amely alapértelmezés szerint DROPEFFECT_NONE ad vissza. Mivel ezt a függvényt gyakran hívják egy húzási művelet során, a lehető legnagyobb mértékben optimalizálni kell.

További információ: IDropTarget::D ragOver a Windows SDK-ban.

Example

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

A keretrendszer meghívta az OnDragEnter vagy az OnDragOver hívása előtt annak megállapításához, hogy a pont a görgetési régióban van-e.

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

Paraméterek

pWnd
Mutasson arra az ablakra, amelyen a kurzor éppen túl van.

dwKeyState
A módosító kulcsok á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.

Pont
A kurzor helye képpontban, a képernyőhöz viszonyítva.

Visszaadott érték

Az a hatás, amely akkor következne be, ha a pont által megadott helyen kísérelnének meg egy cseppet. 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 Azt jelzi, hogy egy húzási görgetési művelet készül vagy a célban történik.

Megjegyzések

Bírálja felül ezt a függvényt, ha különleges viselkedést szeretne biztosítani ehhez az eseményhez. A függvény alapértelmezett implementációja a CView::OnDragScroll függvényt hívja meg, amely DROPEFFECT_NONE ad vissza, és görgeti az ablakot, amikor a kurzort az alapértelmezett görgetési régióba húzza az ablak szegélyén belül.

COleDropTarget::OnDrop

A keretrendszer meghívja, amikor egy legördülő műveletet kell végrehajtania.

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

Paraméterek

pWnd
Mutasson arra az ablakra, amelyen a kurzor éppen túl van.

pDataObject
Az elvetendő adatokat tartalmazó adatobjektumra mutat.

dropEffect
Az a hatás, amelyet a felhasználó az elvetési művelethez választott. Az alábbiak közül egy vagy több lehet:

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

Pont
A kurzor helye képpontban, a képernyőhöz viszonyítva.

Visszaadott érték

Nonzero, ha az esés sikeres; egyéb esetben 0.

Megjegyzések

A keretrendszer először meghívja az OnDropEx-et. Ha a OnDropEx függvény nem kezeli az elvetést, a keretrendszer ezt a tagfüggvényt hívja meg. OnDrop Az alkalmazás általában felülbírálja az OnDropEx-et a nézetosztályban a jobb egérgomb húzásával és húzásával. Az OnDrop nézetosztály általában egyszerű húzással és húzással kezelhető.

A CView::OnDrop hívások alapértelmezett implementációjaCOleDropTarget::OnDrop, amely alapértelmezés szerint a FALSE értéket adja vissza.

További információ: IDropTarget::D rop a Windows SDK-ban.

COleDropTarget::OnDropEx

A keretrendszer meghívja, amikor egy legördülő műveletet kell végrehajtania.

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

Paraméterek

pWnd
Mutasson arra az ablakra, amelyen a kurzor éppen túl van.

pDataObject
Az elvetendő adatokat tartalmazó adatobjektumra mutat.

dropDefault
Az a hatás, amelyet a felhasználó az alapértelmezett csepegtetési művelethez választott az aktuális kulcsállapot alapján. Lehet DROPEFFECT_NONE. A cseppeffektusokat a Megjegyzések szakaszban tárgyaljuk.

dropList
A drop source által támogatott legördülő effektusok listája. A drop effect értékek a bitenkénti OR (|) művelettel kombinálhatók. A cseppeffektusokat a Megjegyzések szakaszban tárgyaljuk.

Pont
A kurzor helye képpontban, a képernyőhöz viszonyítva.

Visszaadott érték

A pont által megadott helyen történt dobási kísérlet eredményeként létrejött drop effect. A cseppeffektusokat a Megjegyzések szakaszban tárgyaljuk.

Megjegyzések

A keretrendszer először meghívja ezt a függvényt. Ha nem kezeli az elvetést, a keretrendszer meghívja az OnDropot. Általában felül fogja bírálni az OnDropEx-et a nézetosztályban, hogy támogassa a jobb egérgombos húzást. Az OnDrop nézetosztály általában az egyszerű húzás támogatásának kezelésére szolgál.

A CView::OnDropEx hívások alapértelmezett implementációjaCOleDropTarget::OnDropEx. Alapértelmezés szerint a CView::OnDropEx egyszerűen egy próbaértéket ad vissza, amely jelzi, hogy az OnDrop tagfüggvényt meg kell hívni.

Az effektusok a drop művelethez társított műveletet írják le. Tekintse meg a legördülő effektusok alábbi listáját:

  • 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 Azt jelzi, hogy egy húzási görgetési művelet készül vagy a célban történik.

További információ: IDropTarget::D rop a Windows SDK-ban.

COleDropTarget::Regisztráció

Hívja meg ezt a függvényt, hogy érvényes célként regisztrálja az ablakot az OLE DLL-ekkel.

BOOL Register(CWnd* pWnd);

Paraméterek

pWnd
A célként regisztrálandó ablakra mutat.

Visszaadott érték

Nonzero, ha a regisztráció sikeres; egyéb esetben 0.

Megjegyzések

Ezt a függvényt lemorzsolódási műveletek elfogadásához kell meghívni.

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

COleDropTarget::Visszavonás

Hívja meg ezt a függvényt, mielőtt megsemmisítené a drop targetként regisztrált ablakokat a regisztrációra irányuló hívással, hogy eltávolítsa azt a célpéldányok listájából.

virtual void Revoke();

Megjegyzések

Ezt a függvényt a rendszer automatikusan meghívja az OnDestroy kezelőből a regisztrált ablakhoz, ezért általában nem szükséges explicit módon meghívni ezt a függvényt.

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

Lásd még

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