Dela via


Kartor över händelsemottagare

När en inbäddad OLE-kontroll utlöser en händelse tar kontrollens container emot händelsen med hjälp av en mekanism, kallad "händelsemottagarekarta", som tillhandahålls av MFC. Den här mappningen för händelsemottagaren anger hanteringsfunktioner för varje specifik händelse samt parametrar för dessa händelser. Mer information om mappningar för händelsemottagare finns i artikeln ActiveX-kontrollcontainrar.

Kartor över händelsemottagare

Namn Beskrivning
BEGIN_EVENTSINK_MAP Startar definitionen av en mappning för händelsemottagare.
DECLARE_EVENTSINK_MAP Deklarerar en mappning för händelsemottagare.
END_EVENTSINK_MAP Avslutar definitionen av en händelsemottagarekarta.
ON_EVENT Definierar en händelsehanterare för en viss händelse.
ON_EVENT_RANGE Definierar en händelsehanterare för en specifik händelse som utlöses från en uppsättning OLE-kontroller.
ON_EVENT_REFLECT Tar emot händelser som utlösts av kontrollen innan de hanteras av kontrollens container.
ON_PROPNOTIFY Definierar en hanterare för hantering av egenskapsmeddelanden från en OLE-kontroll.
ON_PROPNOTIFY_RANGE Definierar en hanterare för hantering av egenskapsmeddelanden från en uppsättning OLE-kontroller.
ON_PROPNOTIFY_REFLECT Tar emot egenskapsmeddelanden som skickas av kontrollen innan de hanteras av kontrollens container.

BEGIN_EVENTSINK_MAP

Börjar definitionen av din karta över händelsemottagaren.

BEGIN_EVENTSINK_MAP(theClass, baseClass)

Parameterar

theClass
Anger namnet på kontrollklassen vars mappning av händelsemottagare är.

basKlass
Anger namnet på basklassen för Klassen.

Anmärkningar

I implementeringsfilen (.cpp) som definierar medlemsfunktionerna för klassen startar du mappningen för händelsemottagaren med BEGIN_EVENTSINK_MAP makro, lägger sedan till makroposter för varje händelse som ska meddelas om och slutför kartan över händelsemottagaren med END_EVENTSINK_MAP makro.

Mer information om mappningar för händelsemottagare och OLE-kontrollcontainrar finns i artikeln ActiveX-kontrollcontainrar.

Kravspecifikation

Sidhuvud afxdisp.h

DECLARE_EVENTSINK_MAP

En OLE-container kan tillhandahålla en mappning för händelsemottagare för att ange de händelser som containern ska meddelas om.

DECLARE_EVENTSINK_MAP()

Anmärkningar

Använd DECLARE_EVENTSINK_MAP makrot i slutet av klassdeklarationen. Sedan, i . CPP-fil som definierar medlemsfunktionerna för klassen, använder BEGIN_EVENTSINK_MAP makro, makroposter för var och en av de händelser som ska meddelas om och END_EVENTSINK_MAP makro för att deklarera slutet på händelsemottagarelistan.

Mer information om mappningar för händelsemottagare finns i artikeln ActiveX-kontrollcontainrar.

Kravspecifikation

Sidhuvud afxwin.h

END_EVENTSINK_MAP

Avslutar definitionen av händelsemottagarens karta.

END_EVENTSINK_MAP()

Kravspecifikation

Sidhuvud afxdisp.h

ON_EVENT

Använd makrot ON_EVENT för att definiera en händelsehanterarfunktion för en händelse som utlöses av en OLE-kontroll.

ON_EVENT(theClass, id, dispid, pfnHandler,  vtsParams)

Parameterar

theClass
Klassen som den här händelsemottagarekartan tillhör.

ID
Kontroll-ID för OLE-kontrollen.

dispid
Sändnings-ID:t för händelsen som utlöstes av kontrollen.

pfnHandler
Pekare till en medlemsfunktion som hanterar händelsen. Den här funktionen ska ha en BOOL-returtyp och parametertyper som matchar händelsens parametrar (se vtsParams). Funktionen ska returnera TRUE för att indikera att händelsen hanterades. annars FALSKT.

vtsParams
En sekvens med VTS_ konstanter som anger typerna av parametrarna för händelsen. Det här är samma konstanter som används i sändningsmappningsposter, till exempel DISP_FUNCTION.

Anmärkningar

Argumentet vtsParams är en blankstegsavgränsad lista med värden från VTS_ konstanterna. Ett eller flera av dessa värden avgränsade med blanksteg (inte kommatecken) anger funktionens parameterlista. Till exempel:

VTS_I2 VTS_BOOL

anger en lista som innehåller ett kort heltal följt av en BOOL.

En lista över VTS_ konstanter finns i EVENT_CUSTOM.

Kravspecifikation

Sidhuvud afxdisp.h

ON_EVENT_RANGE

Använd makrot ON_EVENT_RANGE för att definiera en händelsehanterarfunktion för en händelse som utlöses av en OLE-kontroll som har ett kontroll-ID inom ett sammanhängande intervall med ID:er.

ON_EVENT_RANGE(theClass, idFirst, idLast, dispid, pfnHandler,  vtsParams)

Parameterar

theClass
Klassen som den här händelsemottagarekartan tillhör.

idFirst
Kontroll-ID för den första OLE-kontrollen i intervallet.

idLast
Kontroll-ID för den senaste OLE-kontrollen i intervallet.

dispid
Sändnings-ID:t för händelsen som utlöstes av kontrollen.

pfnHandler
Pekare till en medlemsfunktion som hanterar händelsen. Den här funktionen ska ha en BOOL-returtyp, en första parameter av typen UINT (för kontroll-ID:t) och ytterligare parametertyper som matchar händelsens parametrar (se vtsParams). Funktionen ska returnera TRUE för att indikera att händelsen hanterades. annars FALSKT.

vtsParams
En sekvens med VTS_ konstanter som anger typerna av parametrarna för händelsen. Den första konstanten ska vara av typen VTS_I4 för kontroll-ID:t. Det här är samma konstanter som används i sändningsmappningsposter, till exempel DISP_FUNCTION.

Anmärkningar

Argumentet vtsParams är en blankstegsavgränsad lista med värden från VTS_ konstanterna. Ett eller flera av dessa värden avgränsade med blanksteg (inte kommatecken) anger funktionens parameterlista. Till exempel:

VTS_I2 VTS_BOOL

anger en lista som innehåller ett kort heltal följt av en BOOL.

En lista över VTS_ konstanter finns i EVENT_CUSTOM.

Exempel

I följande exempel visas en händelsehanterare för MouseDown-händelsen som implementerats för tre kontroller ( IDC_MYCTRL1 via IDC_MYCTRL3). Händelsehanterarfunktionen , OnRangeMouseDowndeklareras i rubrikfilen för dialogklassen (CMyDlg) som:

BOOL OnRangeMouseDown(UINT CtlID, short MouseButton, short Shift,
   long x, long y);

Koden nedan definieras i implementeringsfilen för dialogklassen.

BEGIN_EVENTSINK_MAP(CMyDlg, CDialog)
   ON_EVENT_RANGE(CMyDlg, IDC_MYCTRL1, IDC_MYCTRL3, -605, OnRangeMouseDown,
      VTS_I4 VTS_I2 VTS_I2 VTS_I4 VTS_I4)
END_EVENTSINK_MAP()

Kravspecifikation

Sidhuvud afxdisp.h

ON_EVENT_REFLECT

Makrot ON_EVENT_REFLECT, när det används i händelsemottagarekartan för en OLE-kontrolls omslutningsklass, tar emot händelser som utlösts av kontrollen innan de hanteras av kontrollens container.

ON_EVENT_REFLECT(theClass,  dispid, pfnHandler,  vtsParams)

Parameterar

theClass
Klassen som den här händelsemottagarekartan tillhör.

dispid
Sändnings-ID:t för händelsen som utlöstes av kontrollen.

pfnHandler
Pekare till en medlemsfunktion som hanterar händelsen. Den här funktionen ska ha en BOOL-returtyp och parametertyper som matchar händelsens parametrar (se vtsParams). Funktionen ska returnera TRUE för att indikera att händelsen hanterades. annars FALSKT.

vtsParams
En sekvens med VTS_ konstanter som anger typerna av parametrarna för händelsen. Det här är samma konstanter som används i sändningsmappningsposter, till exempel DISP_FUNCTION.

Anmärkningar

Argumentet vtsParams är en blankstegsavgränsad lista med värden från VTS_ konstanterna.

Ett eller flera av dessa värden avgränsade med blanksteg (inte kommatecken) anger funktionens parameterlista. Till exempel:

VTS_I2 VTS_BOOL

anger en lista som innehåller ett kort heltal följt av en BOOL.

En lista över VTS_ konstanter finns i EVENT_CUSTOM.

Kravspecifikation

Sidhuvud afxdisp.h

ON_PROPNOTIFY

Använd makrot ON_PROPNOTIFY för att definiera en mappningspost för händelsemottagare för hantering av egenskapsmeddelanden från en OLE-kontroll.

ON_PROPNOTIFY(theClass, id, dispid, pfnRequest, pfnChanged)

Parameterar

theClass
Klassen som den här händelsemottagarekartan tillhör.

ID
Kontroll-ID för OLE-kontrollen.

dispid
Leverans-ID:t för den egenskap som ingår i meddelandet.

pfnRequest
Pekare till en medlemsfunktion som hanterar meddelandet för den OnRequestEdit här egenskapen. Den här funktionen ska ha en BOOL-returtyp och en BOOL-parameter* . Den här funktionen bör ställa in parametern på TRUE för att tillåta att egenskapen ändras och FALSE tillåts inte. Funktionen ska returnera TRUE för att indikera att meddelandet har hanterats. annars FALSKT.

pfnChanged
Pekare till en medlemsfunktion som hanterar meddelandet för den OnChanged här egenskapen. Funktionen ska ha en BOOL-returtyp och en UINT-parameter. Funktionen ska returnera TRUE för att indikera att meddelandet har hanterats. annars FALSKT.

Anmärkningar

Argumentet vtsParams är en blankstegsavgränsad lista med värden från VTS_ konstanterna. Ett eller flera av dessa värden avgränsade med blanksteg (inte kommatecken) anger funktionens parameterlista. Till exempel:

VTS_I2 VTS_BOOL

anger en lista som innehåller ett kort heltal följt av en BOOL.

En lista över VTS_ konstanter finns i EVENT_CUSTOM.

ON_PROPNOTIFY_RANGE

Använd makrot ON_PROPNOTIFY_RANGE för att definiera en mappningspost för händelsemottagare för hantering av egenskapsmeddelanden från alla OLE-kontroller som har ett kontroll-ID inom ett sammanhängande intervall med ID:er.

ON_PROPNOTIFY_RANGE(theClass, idFirst, idLast, dispid, pfnRequest, pfnChanged)

Parameterar

theClass
Klassen som den här händelsemottagarekartan tillhör.

idFirst
Kontroll-ID för den första OLE-kontrollen i intervallet.

idLast
Kontroll-ID för den senaste OLE-kontrollen i intervallet.

dispid
Leverans-ID:t för den egenskap som ingår i meddelandet.

pfnRequest
Pekare till en medlemsfunktion som hanterar meddelandet för den OnRequestEdit här egenskapen. Den här funktionen bör ha en BOOL returtyp och UINT parametrar BOOL* . Funktionen bör ställa in parametern på TRUE för att tillåta att egenskapen ändras och FALSE tillåts inte. Funktionen ska returnera TRUE för att indikera att meddelandet har hanterats. annars FALSKT.

pfnChanged
Pekare till en medlemsfunktion som hanterar meddelandet för den OnChanged här egenskapen. Funktionen ska ha en BOOL returtyp och en UINT parameter. Funktionen ska returnera TRUE för att indikera att meddelandet har hanterats. annars FALSKT.

Kravspecifikation

Sidhuvud afxdisp.h

ON_PROPNOTIFY_REFLECT

Det ON_PROPNOTIFY_REFLECT makrot, när det används i händelsemottagarekartan för en OLE-kontrolls omslutningsklass, tar emot egenskapsmeddelanden som skickas av kontrollen innan de hanteras av kontrollens container.

ON_PROPNOTIFY_REFLECT(theClass, dispid, pfnRequest, pfnChanged)

Parameterar

theClass
Klassen som den här händelsemottagarekartan tillhör.

dispid
Leverans-ID:t för den egenskap som ingår i meddelandet.

pfnRequest
Pekare till en medlemsfunktion som hanterar meddelandet för den OnRequestEdit här egenskapen. Den här funktionen ska ha en BOOL-returtyp och en BOOL-parameter* . Den här funktionen bör ställa in parametern på TRUE för att tillåta att egenskapen ändras och FALSE tillåts inte. Funktionen ska returnera TRUE för att indikera att meddelandet har hanterats. annars FALSKT.

pfnChanged
Pekare till en medlemsfunktion som hanterar meddelandet för den OnChanged här egenskapen. Funktionen ska ha en BOOL-returtyp och inga parametrar. Funktionen ska returnera TRUE för att indikera att meddelandet har hanterats. annars FALSKT.

Kravspecifikation

Sidhuvud afxdisp.h

Se även

makron och globala