Share via


Gebeurtenisoverzichten

Opmerking

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

Wanneer een besturingselement de container wil melden dat een bepaalde actie (bepaald door de besturingselementontwikkelaar) is uitgevoerd (zoals een toetsaanslag, muisklik of een wijziging in de status van het besturingselement) wordt een functie voor het starten van gebeurtenissen aangeroepen. Met deze functie wordt de besturingscontainer op de hoogte gebracht van een belangrijke actie door de gerelateerde gebeurtenis te activeren.

De Microsoft Foundation Class Library biedt een programmeermodel dat is geoptimaliseerd voor het afvuren van gebeurtenissen. In dit model worden 'gebeurtenisoverzichten' gebruikt om aan te geven welke functies welke gebeurtenissen voor een bepaald besturingselement worden geactiveerd. Gebeurtenistoewijzingen bevatten één macro voor elke gebeurtenis. Een gebeurtenisoverzicht dat bijvoorbeeld een gebeurtenis met een stockklik wordt geactiveerd, kan er als volgt uitzien:

BEGIN_EVENT_MAP(CMyAxCtrl, COleControl)
EVENT_STOCK_CLICK()
END_EVENT_MAP()

De EVENT_STOCK_CLICK macro geeft aan dat het besturingselement elke keer dat er een muisklik wordt gedetecteerd een gebeurtenis met klikken op voorraad wordt geactiveerd. Zie het artikel ActiveX-besturingselementen: Gebeurtenissen voor een gedetailleerdere lijst van andere aandelenevenementen. Macro's zijn ook beschikbaar om aangepaste gebeurtenissen aan te geven.

Hoewel macro's voor gebeurtenistoewijzing belangrijk zijn, kunt u ze over het algemeen niet rechtstreeks invoegen. Dit komt doordat in het venster Eigenschappen (in klasseweergave) automatisch vermeldingen voor gebeurtenistoewijzingen worden gemaakt in uw bronbestanden wanneer u deze gebruikt om functies voor gebeurtenisgebeurtenissen te koppelen aan gebeurtenissen. Wanneer u een gebeurtenisoverzichtitem wilt bewerken of toevoegen, kunt u het venster Eigenschappen gebruiken.

Ter ondersteuning van gebeurtenisoverzichten biedt MFC de volgende macro's:

Macro's gebeurtenisoverzicht

Declaratie en afbakening van gebeurtenisoverzicht

Naam Description
DECLARE_EVENT_MAP Declareert dat een gebeurtenisoverzicht wordt gebruikt in een klasse om gebeurtenissen toe te wijzen aan functies voor gebeurtenisschieten (moet worden gebruikt in de klassedeclaratie).
BEGIN_EVENT_MAP Hiermee begint u de definitie van een gebeurtenisoverzicht (moet worden gebruikt in de klasse-implementatie).
END_EVENT_MAP Hiermee wordt de definitie van een gebeurtenisoverzicht beëindigd (moet worden gebruikt in de klasse-implementatie).

Macro's voor gebeurtenistoewijzing

Naam Description
EVENT_CUSTOM Geeft aan welke functie voor het starten van gebeurtenissen de opgegeven gebeurtenis zal activeren.
EVENT_CUSTOM_ID Hiermee wordt aangegeven welke functie voor gebeurtenisvuur de opgegeven gebeurtenis zal activeren, met een aangewezen verzend-id.

Macro's voor berichttoewijzing

Naam Description
ON_OLEVERB Geeft een aangepast werkwoord aan dat wordt verwerkt door het OLE-besturingselement.
ON_STDOLEVERB Hiermee wordt een standaardwerkwoordtoewijzing van het OLE-besturingselement overschreven.

DECLARE_EVENT_MAP

Elke COleControl-afgeleide klasse in uw programma kan een gebeurtenisoverzicht bieden om de gebeurtenissen op te geven die door uw besturingselement worden geactiveerd.

DECLARE_EVENT_MAP()

Opmerkingen

Gebruik de DECLARE_EVENT_MAP macro aan het einde van de klassedeclaratie. Gebruik vervolgens in het .cpp bestand dat de lidfuncties voor de klasse definieert de BEGIN_EVENT_MAP macro, macrovermeldingen voor elk van de gebeurtenissen van het besturingselement en de END_EVENT_MAP macro om het einde van de lijst met gebeurtenissen te declareren.

Zie het artikel ActiveX-besturingselementen: Gebeurtenissen voor meer informatie over gebeurtenisoverzichten.

Requirements

Header afxctl.h

BEGIN_EVENT_MAP

Hiermee begint u de definitie van uw gebeurtenisoverzicht.

BEGIN_EVENT_MAP(theClass,  baseClass)

Parameterwaarden

theClass
Hiermee geeft u de naam op van de besturingsklasse waarvan dit gebeurtenisoverzicht is.

baseClass
Hiermee geeft u de naam van de basisklasse van theClass.

Opmerkingen

In het implementatiebestand (.cpp) dat de lidfuncties voor uw klas definieert, start u de gebeurtenistoewijzing met de BEGIN_EVENT_MAP macro, voegt u vervolgens macrovermeldingen toe voor elk van uw gebeurtenissen en voltooit u de gebeurtenistoewijzing met de END_EVENT_MAP macro.

Zie het artikel ActiveX-besturingselementen: Gebeurtenissen voor meer informatie over gebeurtenisoverzichten en de BEGIN_EVENT_MAP macro.

Requirements

Header afxctl.h

END_EVENT_MAP

Gebruik de END_EVENT_MAP macro om de definitie van uw gebeurtenisoverzicht te beëindigen.

END_EVENT_MAP()

Requirements

Header afxctl.h

EVENT_CUSTOM

Hiermee definieert u een vermelding voor een gebeurtenisoverzicht voor een aangepaste gebeurtenis.

EVENT_CUSTOM(pszName, pfnFire,  vtsParams)

Parameterwaarden

pszName
De naam van de gebeurtenis.

pfnFire
De naam van de functie voor het activeren van gebeurtenissen.

vtsParams
Een door spaties gescheiden lijst met een of meer constanten waarmee de parameterlijst van de functie wordt opgegeven.

Opmerkingen

De parameter vtsParams is een door spaties gescheiden lijst met waarden uit de VTS_ constanten. Een of meer van deze waarden gescheiden door spaties (geen komma's) specificeert de parameterlijst van de functie. Voorbeeld:

VTS_COLOR VTS_FONT

geeft een lijst op met een 32-bits geheel getal dat een RGB-kleurwaarde vertegenwoordigt, gevolgd door een aanwijzer naar de IFontDisp interface van een OLE-lettertypeobject.

De VTS_ constanten en hun betekenissen zijn als volgt:

Symbol Parametertype
VTS_I2 short
VTS_I4 long
VTS_R4 float
VTS_R8 double
VTS_COLOR OLE_COLOR
VTS_CY VALUTA
VTS_DATE DATE
VTS_BSTR const Char*
VTS_DISPATCH LPDISPATCH
VTS_FONT IFontDispatch*
VTS_HANDLE BEHANDELEN
VTS_SCODE SCODE
VTS_BOOL BOOL
VTS_VARIANT const VARIANT*
VTS_PVARIANT VARIANT*
VTS_UNKNOWN LPUNKNOWN
VTS_OPTEXCLUSIVE OLE_OPTEXCLUSIVE
VTS_PICTURE IPictureDisp*
VTS_TRISTATE OLE_TRISTATE
VTS_XPOS_PIXELS OLE_XPOS_PIXELS
VTS_YPOS_PIXELS OLE_YPOS_PIXELS
VTS_XSIZE_PIXELS OLE_XSIZE_PIXELS
VTS_YSIZE_PIXELS OLE_YSIZE_PIXELS
TS_XPOS_HIMETRIC OLE_XPOS_HIMETRIC
VTS_YPOS_HIMETRIC OLE_YPOS_HIMETRIC
VTS_XSIZE_HIMETRIC OLE_XSIZE_HIMETRIC
VTS_YSIZE_HIMETRIC OLE_YSIZE_HIMETRIC

Opmerking

Er zijn aanvullende variantconstanten gedefinieerd voor alle varianttypen, met uitzondering van VTS_FONT en VTS_PICTURE, die een aanwijzer naar de constante van de variantgegevens bieden. Deze constanten worden benoemd met behulp van de VTS_Pconstantname conventie. VTS_PCOLOR is bijvoorbeeld een aanwijzer naar een VTS_COLOR constante.

Requirements

Header afxctl.h

EVENT_CUSTOM_ID

Definieert een functie voor het activeren van gebeurtenissen voor een aangepaste gebeurtenis die hoort bij de verzend-id die is opgegeven door dispid.

EVENT_CUSTOM_ID(
    pszName,
    dispid,
    pfnFire,
    vtsParams)

Parameterwaarden

pszName
De naam van de gebeurtenis.

dispid
De verzend-id die door het besturingselement wordt gebruikt bij het activeren van de gebeurtenis.

pfnFire
De naam van de functie voor het activeren van gebeurtenissen.

vtsParams
Een lijst met variabelen met parameters die worden doorgegeven aan de besturingscontainer wanneer de gebeurtenis wordt geactiveerd.

Opmerkingen

Het argument vtsParams is een door spaties gescheiden lijst met waarden uit de VTS_ constanten. Een of meer van deze waarden gescheiden door spaties, geen komma's, specificeert de parameterlijst van de functie. Voorbeeld:

VTS_COLOR VTS_FONT

geeft een lijst op met een 32-bits geheel getal dat een RGB-kleurwaarde vertegenwoordigt, gevolgd door een aanwijzer naar de IFontDisp interface van een OLE-lettertypeobject.

Zie EVENT_CUSTOM voor een lijst met constantenVTS_.

Requirements

Header afxctl.h

ON_OLEVERB

Deze macro definieert een berichtkaartvermelding waarmee een aangepast werkwoord wordt toegewezen aan een specifieke lidfunctie van uw besturingselement.

ON_OLEVERB(idsVerbName,  memberFxn)

Parameterwaarden

idsVerbName
De tekenreeksresource-id van de naam van het werkwoord.

memberFxn
De functie die door het framework wordt aangeroepen wanneer het werkwoord wordt aangeroepen.

Opmerkingen

De resource-editor kan worden gebruikt om aangepaste werkwoordnamen te maken die worden toegevoegd aan de tekenreekstabel.

Het prototype van de functie voor memberFxn is:

BOOL memberFxn(
   LPMSG    lpMsg,
   HWND     hWndParent,
   LPCRECT  lpRect);

De waarden van de parameters lpMsg, hWndParent en lpRect worden opgehaald uit de bijbehorende parameters van de IOleObject::DoVerb lidfunctie.

Requirements

Header afxole.h

ON_STDOLEVERB

Gebruik deze macro om het standaardgedrag van een standaardwoord te overschrijven.

ON_STDOLEVERB(iVerb, memberFxn)

Parameterwaarden

iVerb
De standaardwerkwoordindex voor het werkwoord dat wordt overschreven.

memberFxn
De functie die door het framework wordt aangeroepen wanneer het werkwoord wordt aangeroepen.

Opmerkingen

De standaardwerkwoordindex is van het formulier OLEIVERB_, gevolgd door een actie. OLEIVERB_SHOW, OLEIVERB_HIDE en OLEIVERB_UIACTIVATE zijn enkele voorbeelden van standaardwoorden.

Zie ON_OLEVERB voor een beschrijving van het prototype van de functie die moet worden gebruikt als de parameter memberFxn .

Requirements

Header afxole.h

Zie ook

macro's en globalen