Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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