Share via


Klasse COleDropTarget

Opmerking

De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Biedt het communicatiemechanisme tussen een venster en de OLE-bibliotheken.

Syntaxis

class COleDropTarget : public CCmdTarget

Leden

Openbare constructors

Naam Description
COleDropTarget::COleDropTarget Maakt een COleDropTarget object.

Openbare methoden

Naam Description
COleDropTarget::OnDragEnter Aangeroepen wanneer de cursor het venster voor het eerst binnenkomt.
COleDropTarget::OnDragLeave Aangeroepen wanneer de cursor uit het venster wordt gesleept.
COleDropTarget::OnDragOver Herhaaldelijk aangeroepen wanneer de cursor over het venster wordt gesleept.
COleDropTarget::OnDragScroll Aangeroepen om te bepalen of de cursor naar het schuifgebied van het venster wordt gesleept.
COleDropTarget::OnDrop Aangeroepen wanneer gegevens in het venster worden geplaatst, standaardhandler.
COleDropTarget::OnDropEx Aangeroepen wanneer gegevens in het venster worden geplaatst, initiële handler.
COleDropTarget::Register Registreert het venster als een geldig doel voor neerzetten.
COleDropTarget::Revoke Zorgt ervoor dat het venster geen geldig doel meer is.

Opmerkingen

Als u een object van deze klasse maakt, kan een venster gegevens accepteren via het OLE-mechanisme voor slepen en neerzetten.

Als u een venster wilt ophalen om drop-opdrachten te accepteren, moet u eerst een object van de COleDropTarget klasse maken en vervolgens de functie Register aanroepen met een aanwijzer naar het gewenste CWnd object als de enige parameter.

Zie het artikel OLE slepen en neerzetten voor meer informatie over slepen en neerzetten met OLE.

Overnamehiërarchie

CObject

CCmdTarget

COleDropTarget

Requirements

Koptekst: afxole.h

COleDropTarget::COleDropTarget

Maakt een object van klasse COleDropTarget.

COleDropTarget();

Opmerkingen

Roep Register aan om dit object te koppelen aan een venster.

COleDropTarget::OnDragEnter

Aangeroepen door het framework wanneer de cursor voor het eerst naar het venster wordt gesleept.

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

Parameterwaarden

pWnd
Verwijst naar het venster dat de cursor invoert.

pDataObject
Verwijst naar het gegevensobject met de gegevens die kunnen worden verwijderd.

dwKeyState
Bevat de status van de wijzigingssleutels. Dit is een combinatie van een willekeurig aantal van de volgende: MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_MBUTTON en MK_RBUTTON.

Punt
Bevat de huidige locatie van de cursor in clientcoördinaten.

Retourwaarde

Het effect dat zou resulteren als een daling werd uitgevoerd op de locatie die per punt is opgegeven. Dit kan een of meer van de volgende zijn:

  • DROPEFFECT_NONE Een neerval is niet toegestaan.

  • DROPEFFECT_COPY Er wordt een kopieerbewerking uitgevoerd.

  • DROPEFFECT_MOVE een verplaatsingsbewerking wordt uitgevoerd.

  • DROPEFFECT_LINK Er wordt een koppeling van de verwijderde gegevens naar de oorspronkelijke gegevens tot stand gebracht.

  • DROPEFFECT_SCROLL Een schuifbewerking voor slepen staat op het punt of in het doel op te treden.

Opmerkingen

Overschrijf deze functie om toe te staan dat er drop-bewerkingen in het venster worden uitgevoerd. De standaard-implementatie roept CView::OnDragEnter aan, waardoor DROPEFFECT_NONE standaard wordt geretourneerd.

Zie IDropTarget::D ragEnter in de Windows SDK voor meer informatie.

COleDropTarget::OnDragLeave

Aangeroepen door het framework wanneer de cursor het venster verlaat terwijl een sleepbewerking van kracht is.

virtual void OnDragLeave(CWnd* pWnd);

Parameterwaarden

pWnd
Verwijst naar het venster dat de cursor verlaat.

Opmerkingen

Overschrijf deze functie als u speciaal gedrag wilt wanneer de sleepbewerking het opgegeven venster verlaat. De standaard implementatie van deze functie roept CView::OnDragLeave aan.

Zie IDropTarget::D ragLeave in de Windows SDK voor meer informatie.

COleDropTarget::OnDragOver

Aangeroepen door het framework wanneer de cursor over het venster wordt gesleept.

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

Parameterwaarden

pWnd
Verwijst naar het venster waarop de cursor zich bevindt.

pDataObject
Verwijst naar het gegevensobject dat de gegevens bevat die moeten worden verwijderd.

dwKeyState
Bevat de status van de wijzigingssleutels. Dit is een combinatie van een willekeurig aantal van de volgende: MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_MBUTTON en MK_RBUTTON.

Punt
Bevat de huidige locatie van de cursor in clientcoördinaten.

Retourwaarde

Het effect dat zou resulteren als een daling werd uitgevoerd op de locatie die per punt is opgegeven. Dit kan een of meer van de volgende zijn:

  • DROPEFFECT_NONE Een neerval is niet toegestaan.

  • DROPEFFECT_COPY Er wordt een kopieerbewerking uitgevoerd.

  • DROPEFFECT_MOVE een verplaatsingsbewerking wordt uitgevoerd.

  • DROPEFFECT_LINK Er wordt een koppeling van de verwijderde gegevens naar de oorspronkelijke gegevens tot stand gebracht.

  • DROPEFFECT_SCROLL Geeft aan dat een schuifbewerking voor slepen op het punt staat of zich in het doel bevindt.

Opmerkingen

Deze functie moet worden overschreven om drop-bewerkingen in het venster toe te staan. De standaard implementatie van deze functie roept CView::OnDragOver aan, die standaard DROPEFFECT_NONE retourneert. Omdat deze functie vaak wordt aangeroepen tijdens een slepen-en-neerzetten-bewerking, moet deze zo veel mogelijk worden geoptimaliseerd.

Zie IDropTarget::D ragOver in de Windows SDK voor meer informatie.

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

Wordt aangeroepen door het framework voordat u OnDragEnter of OnDragOver aanroept om te bepalen of het punt zich in het schuifgebied bevindt.

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

Parameterwaarden

pWnd
Verwijst naar het venster dat de cursor momenteel voorbij is.

dwKeyState
Bevat de status van de wijzigingssleutels. Dit is een combinatie van een willekeurig aantal van de volgende: MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_MBUTTON en MK_RBUTTON.

Punt
Bevat de locatie van de cursor, in pixels, ten opzichte van het scherm.

Retourwaarde

Het effect dat zou resulteren als een daling werd uitgevoerd op de locatie die per punt is opgegeven. Dit kan een of meer van de volgende zijn:

  • DROPEFFECT_NONE Een neerval is niet toegestaan.

  • DROPEFFECT_COPY Er wordt een kopieerbewerking uitgevoerd.

  • DROPEFFECT_MOVE een verplaatsingsbewerking wordt uitgevoerd.

  • DROPEFFECT_LINK Er wordt een koppeling van de verwijderde gegevens naar de oorspronkelijke gegevens tot stand gebracht.

  • DROPEFFECT_SCROLL Geeft aan dat een schuifbewerking voor slepen op het punt staat of zich in het doel bevindt.

Opmerkingen

Overschrijf deze functie als u speciaal gedrag wilt opgeven voor deze gebeurtenis. De standaard implementatie van deze functie roept CView::OnDragScroll aan, die DROPEFFECT_NONE retourneert en het venster schuift wanneer de cursor wordt gesleept naar het standaard scrollgebied binnen de rand van het venster.

COleDropTarget::OnDrop

Aangeroepen door het framework wanneer er een drop-bewerking moet plaatsvinden.

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

Parameterwaarden

pWnd
Verwijst naar het venster dat de cursor momenteel voorbij is.

pDataObject
Verwijst naar het gegevensobject dat de gegevens bevat die moeten worden verwijderd.

dropEffect
Het effect dat de gebruiker heeft gekozen voor de drop-bewerking. Dit kan een of meer van de volgende zijn:

  • DROPEFFECT_COPY Er wordt een kopieerbewerking uitgevoerd.

  • DROPEFFECT_MOVE een verplaatsingsbewerking wordt uitgevoerd.

  • DROPEFFECT_LINK Er wordt een koppeling van de verwijderde gegevens naar de oorspronkelijke gegevens tot stand gebracht.

Punt
Bevat de locatie van de cursor, in pixels, ten opzichte van het scherm.

Retourwaarde

Niet-nul als de daling is geslaagd; anders 0.

Opmerkingen

Het framework roept eerst OnDropEx aan. Als de OnDropEx functie de daling niet afhandelt, roept het framework deze lidfunctie aan. OnDrop Normaal gesproken overschrijft de toepassing OnDropEx in de weergaveklasse om met de rechtermuisknop te slepen en neer te zetten. Normaal gesproken wordt de weergaveklasse OnDrop gebruikt om eenvoudige slepen en neerzetten te verwerken.

De standaard implementatie van COleDropTarget::OnDrop aanroepen CView::OnDrop, die standaard ONWAAR retourneert.

Zie IDropTarget::D rop in de Windows SDK voor meer informatie.

COleDropTarget::OnDropEx

Aangeroepen door het framework wanneer er een drop-bewerking moet plaatsvinden.

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

Parameterwaarden

pWnd
Verwijst naar het venster dat de cursor momenteel voorbij is.

pDataObject
Verwijst naar het gegevensobject dat de gegevens bevat die moeten worden verwijderd.

dropDefault
Het effect dat de gebruiker heeft gekozen voor de standaardvervalbewerking op basis van de huidige sleutelstatus. Het kan DROPEFFECT_NONE zijn. Effecten voor neerzetten worden besproken in de sectie Opmerkingen.

dropList
Een lijst met de drop effects die door de drop source worden ondersteund. Waarden voor dalingseffect kunnen worden gecombineerd met behulp van de bitsgewijze OR-bewerking (|). Effecten voor neerzetten worden besproken in de sectie Opmerkingen.

Punt
Bevat de locatie van de cursor, in pixels, ten opzichte van het scherm.

Retourwaarde

Het neervallende effect dat het gevolg is van de poging tot neerzetten op de locatie die is opgegeven per punt. Effecten voor neerzetten worden besproken in de sectie Opmerkingen.

Opmerkingen

In het framework wordt deze functie eerst aangeroepen. Als de daling niet wordt afgehandeld, roept het framework OnDrop aan. Normaal gesproken overschrijft u OnDropEx in de weergaveklasse om slepen en neerzetten met de rechtermuisknop te ondersteunen. Normaal gesproken wordt de weergaveklasse OnDrop gebruikt voor het afhandelen van de ondersteuningscase voor eenvoudige slepen en neerzetten.

De standaard implementatie van COleDropTarget::OnDropEx aanroepen CView::OnDropEx. Standaard retourneert CView::OnDropEx gewoon een dummy-waarde om aan te geven dat de functie OnDrop-lid moet worden aangeroepen.

Met neervaleffecten wordt de actie beschreven die is gekoppeld aan een neervalbewerking. Zie de volgende lijst met drop effects:

  • DROPEFFECT_NONE Een neerval is niet toegestaan.

  • DROPEFFECT_COPY Er wordt een kopieerbewerking uitgevoerd.

  • DROPEFFECT_MOVE een verplaatsingsbewerking wordt uitgevoerd.

  • DROPEFFECT_LINK Er wordt een koppeling van de verwijderde gegevens naar de oorspronkelijke gegevens tot stand gebracht.

  • DROPEFFECT_SCROLL Geeft aan dat een schuifbewerking voor slepen op het punt staat of zich in het doel bevindt.

Zie IDropTarget::D rop in de Windows SDK voor meer informatie.

COleDropTarget::Register

Roep deze functie aan om uw venster te registreren bij de OLE-DLL's als een geldig drop-doel.

BOOL Register(CWnd* pWnd);

Parameterwaarden

pWnd
Verwijst naar het venster dat moet worden geregistreerd als een doel voor neerzetten.

Retourwaarde

Nonzero als de registratie is geslaagd; anders 0.

Opmerkingen

Deze functie moet worden aangeroepen om drop-bewerkingen te kunnen accepteren.

Zie RegisterDragDrop in de Windows SDK voor meer informatie.

COleDropTarget::Revoke

Roep deze functie aan voordat u een venster vernietigt dat is geregistreerd als een doel voor neerzetten via een aanroep om te registreren om deze uit de lijst met dropdoelen te verwijderen.

virtual void Revoke();

Opmerkingen

Deze functie wordt automatisch aangeroepen vanuit de OnDestroy-handler voor het venster dat is geregistreerd, dus het is meestal niet nodig om deze functie expliciet aan te roepen.

Zie RevokeDragDrop in de Windows SDK voor meer informatie.

Zie ook

MFC-voorbeeld HIERSVR
MFC-voorbeeld-OCLIENT
CCmdTarget-klasse
Hiërarchiegrafiek
Klasse COleDropSource