Mapy jímek událostí
Když vložený ovládací prvek OLE aktivuje událost, kontejner ovládacího prvku obdrží událost pomocí mechanismu označovaného jako "mapa jímky událostí", kterou poskytuje MFC. Tato mapa jímky událostí určuje funkce obslužné rutiny pro každou konkrétní událost a také parametry těchto událostí. Další informace o mapách jímky událostí najdete v článku Kontejnery ovládacích prvků ActiveX.
Mapy jímek událostí
Název | Popis |
---|---|
BEGIN_EVENTSINK_MAP | Spustí definici mapy jímky událostí. |
DECLARE_EVENTSINK_MAP | Deklaruje mapu jímky událostí. |
END_EVENTSINK_MAP | Ukončí definici mapy jímky událostí. |
ON_EVENT | Definuje obslužnou rutinu události pro konkrétní událost. |
ON_EVENT_RANGE | Definuje obslužnou rutinu události pro konkrétní událost aktivovanou ze sady ovládacích prvků OLE. |
ON_EVENT_REFLECT | Přijímá události aktivované ovládacím prvku předtím, než je zpracuje kontejner ovládacího prvku. |
ON_PROPNOTIFY | Definuje obslužnou rutinu pro zpracování oznámení vlastností z ovládacího prvku OLE. |
ON_PROPNOTIFY_RANGE | Definuje obslužnou rutinu pro zpracování oznámení vlastností ze sady ovládacích prvků OLE. |
ON_PROPNOTIFY_REFLECT | Přijímá oznámení o vlastnosti odeslané ovládacím prvku před jejich zpracování kontejnerem ovládacího prvku. |
BEGIN_EVENTSINK_MAP
Zahájí definici mapy jímky událostí.
BEGIN_EVENTSINK_MAP(theClass, baseClass)
Parametry
theClass
Určuje název třídy ovládacího prvku, jejíž jímka událostí mapuje.
baseClass
Určuje název základní třídy Třídy.
Poznámky
V souboru implementace (.cpp), který definuje členské funkce pro vaši třídu, spusťte mapu jímky událostí pomocí BEGIN_EVENTSINK_MAP makra, přidejte položky makra pro každou událost, o které chcete dostávat oznámení, a dokončete mapu jímky události pomocí makra END_EVENTSINK_MAP.
Další informace o mapách jímky událostí a kontejnerech ovládacích prvků OLE najdete v článku Kontejnery ovládacích prvků ActiveX.
Požadavky
Hlavička afxdisp.h
DECLARE_EVENTSINK_MAP
Kontejner OLE může poskytnout mapu jímky událostí k určení událostí, na které bude kontejner upozorněn.
DECLARE_EVENTSINK_MAP()
Poznámky
Použijte makro DECLARE_EVENTSINK_MAP na konci deklarace třídy. Pak v sadě . Soubor CPP, který definuje členské funkce pro třídu, použijte BEGIN_EVENTSINK_MAP makro, položky maker pro každou událost, na které mají být upozorněni, a END_EVENTSINK_MAP makro k deklaraci konce seznamu jímky událostí.
Další informace o mapách jímky událostí najdete v článku Kontejnery ovládacích prvků ActiveX.
Požadavky
Header afxwin.h
END_EVENTSINK_MAP
Ukončí definici mapy jímky událostí.
END_EVENTSINK_MAP()
Požadavky
Hlavička afxdisp.h
ON_EVENT
Pomocí ON_EVENT makra definujte funkci obslužné rutiny události pro událost aktivovanou ovládacím prvku OLE.
ON_EVENT(theClass, id, dispid, pfnHandler, vtsParams)
Parametry
theClass
Třída, do které patří mapa jímky událostí.
id
ID ovládacího prvku OLE.
dispid
ID odeslání události aktivované ovládacím prvku.
pfnHandler
Ukazatel na členovou funkci, která zpracovává událost. Tato funkce by měla mít návratový typ BOOL a typy parametrů, které odpovídají parametrům události (viz vtsParams). Funkce by měla vrátit hodnotu TRUE, která označuje, že událost byla zpracována; jinak NEPRAVDA.
vtsParams
Posloupnost VTS_ konstant, která určuje typy parametrů události. Jedná se o stejné konstanty, které se používají v položkách mapy odeslání, jako je DISP_FUNCTION.
Poznámky
Argument vtsParams je seznam hodnot oddělených mezerami od konstant VTS_ . Jedna nebo více těchto hodnot oddělených mezerami (nikoli čárkami) určuje seznam parametrů funkce. Příklad:
VTS_I2 VTS_BOOL
určuje seznam obsahující krátké celé číslo následované logickou hodnotou BOOL.
Seznam konstant VTS_ najdete v tématu EVENT_CUSTOM.
Požadavky
Hlavička afxdisp.h
ON_EVENT_RANGE
Pomocí ON_EVENT_RANGE makra definujte funkci obslužné rutiny události pro událost aktivovanou jakýmkoli ovládacím prvku OLE s ID ovládacího prvku v souvislé oblasti ID.
ON_EVENT_RANGE(theClass, idFirst, idLast, dispid, pfnHandler, vtsParams)
Parametry
theClass
Třída, do které patří mapa jímky událostí.
idFirst
ID ovládacího prvku prvního ovládacího prvku OLE v oblasti.
IdLast
ID ovládacího prvku posledního ovládacího prvku OLE v oblasti.
dispid
ID odeslání události aktivované ovládacím prvku.
pfnHandler
Ukazatel na členovou funkci, která zpracovává událost. Tato funkce by měla mít návratový typ BOOL, první parametr typu UINT (pro ID ovládacího prvku) a další typy parametrů, které odpovídají parametrům události (viz vtsParams). Funkce by měla vrátit hodnotu TRUE, která označuje, že událost byla zpracována; jinak NEPRAVDA.
vtsParams
Posloupnost VTS_ konstant, která určuje typy parametrů události. První konstanta by měla být typu VTS_I4 pro ID ovládacího prvku. Jedná se o stejné konstanty, které se používají v položkách mapy odeslání, jako je DISP_FUNCTION.
Poznámky
Argument vtsParams je seznam hodnot oddělených mezerami od konstant VTS_ . Jedna nebo více těchto hodnot oddělených mezerami (nikoli čárkami) určuje seznam parametrů funkce. Příklad:
VTS_I2 VTS_BOOL
určuje seznam obsahující krátké celé číslo následované logickou hodnotou BOOL.
Seznam konstant VTS_ najdete v tématu EVENT_CUSTOM.
Příklad
Následující příklad ukazuje obslužnou rutinu události, pro MouseDown událost, implementované pro tři ovládací prvky ( IDC_MYCTRL1 prostřednictvím IDC_MYCTRL3). Funkce obslužné rutiny události je OnRangeMouseDown
deklarována v souboru hlavičky třídy dialogového okna ( CMyDlg
) jako:
BOOL OnRangeMouseDown(UINT CtlID, short MouseButton, short Shift,
long x, long y);
Níže uvedený kód je definován v souboru implementace třídy dialogového okna.
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()
Požadavky
Hlavička afxdisp.h
ON_EVENT_REFLECT
Makro ON_EVENT_REFLECT, pokud se používá v mapě jímky událostí třídy obálky ovládacího prvku OLE, přijímá události aktivované ovládacím prvku před jejich zpracování kontejnerem ovládacího prvku.
ON_EVENT_REFLECT(theClass, dispid, pfnHandler, vtsParams)
Parametry
theClass
Třída, do které patří mapa jímky událostí.
dispid
ID odeslání události aktivované ovládacím prvku.
pfnHandler
Ukazatel na členovou funkci, která zpracovává událost. Tato funkce by měla mít návratový typ boOL a typy parametrů, které odpovídají parametrům události (viz vtsParams). Funkce by měla vrátit hodnotu TRUE, která označuje, že událost byla zpracována; jinak NEPRAVDA.
vtsParams
Posloupnost VTS_ konstant, která určuje typy parametrů události. Jedná se o stejné konstanty, které se používají v položkách mapy odeslání, jako je DISP_FUNCTION.
Poznámky
Argument vtsParams je seznam hodnot oddělených mezerami od konstant VTS_ .
Jedna nebo více těchto hodnot oddělených mezerami (nikoli čárkami) určuje seznam parametrů funkce. Příklad:
VTS_I2 VTS_BOOL
určuje seznam obsahující krátké celé číslo následované logickou hodnotou BOOL.
Seznam konstant VTS_ najdete v tématu EVENT_CUSTOM.
Požadavky
Hlavička afxdisp.h
ON_PROPNOTIFY
Pomocí ON_PROPNOTIFY makra definujte položku mapy jímky událostí pro zpracování oznámení vlastností z ovládacího prvku OLE.
ON_PROPNOTIFY(theClass, id, dispid, pfnRequest, pfnChanged)
Parametry
theClass
Třída, do které patří mapa jímky událostí.
id
ID ovládacího prvku OLE.
dispid
ID odeslání vlastnosti zahrnuté v oznámení.
pfnRequest
Ukazatel na členovou funkci, která zpracovává OnRequestEdit
oznámení pro tuto vlastnost. Tato funkce by měla mít návratový typ BOOL a parametr BOOL* . Tato funkce by měla nastavit parametr na HODNOTU TRUE, aby se vlastnost mohla změnit a NEPRAVDA zakázat. Funkce by měla vrátit hodnotu TRUE, aby indikovala, že oznámení bylo zpracováno; jinak NEPRAVDA.
pfnChanged
Ukazatel na členovou funkci, která zpracovává OnChanged
oznámení pro tuto vlastnost. Funkce by měla mít návratový typ BOOL a parametr UINT. Funkce by měla vrátit hodnotu PRAVDA, aby bylo uvedeno, že bylo zpracováno oznámení; jinak NEPRAVDA.
Poznámky
Argument vtsParams je seznam hodnot oddělených mezerami od konstant VTS_ . Jedna nebo více těchto hodnot oddělených mezerami (nikoli čárkami) určuje seznam parametrů funkce. Příklad:
VTS_I2 VTS_BOOL
určuje seznam obsahující krátké celé číslo následované logickou hodnotou BOOL.
Seznam konstant VTS_ najdete v tématu EVENT_CUSTOM.
ON_PROPNOTIFY_RANGE
Pomocí ON_PROPNOTIFY_RANGE makra definujte položku mapy jímky událostí pro zpracování oznámení vlastností z jakéhokoli ovládacího prvku OLE s ID ovládacího prvku v souvislé oblasti ID.
ON_PROPNOTIFY_RANGE(theClass, idFirst, idLast, dispid, pfnRequest, pfnChanged)
Parametry
theClass
Třída, do které patří mapa jímky událostí.
idFirst
ID ovládacího prvku prvního ovládacího prvku OLE v oblasti.
IdLast
ID ovládacího prvku posledního ovládacího prvku OLE v oblasti.
dispid
ID odeslání vlastnosti zahrnuté v oznámení.
pfnRequest
Ukazatel na členovou funkci, která zpracovává OnRequestEdit
oznámení pro tuto vlastnost. Tato funkce by měla mít návratový BOOL
typ a BOOL*
UINT
parametry. Funkce by měla nastavit parametr na HODNOTU TRUE, aby bylo možné vlastnost změnit a NEPRAVDA zakázat. Funkce by měla vrátit hodnotu PRAVDA, aby bylo uvedeno, že bylo zpracováno oznámení; jinak NEPRAVDA.
pfnChanged
Ukazatel na členovou funkci, která zpracovává OnChanged
oznámení pro tuto vlastnost. Funkce by měla mít návratový BOOL
typ a UINT
parametr. Funkce by měla vrátit hodnotu PRAVDA, aby bylo uvedeno, že bylo zpracováno oznámení; jinak NEPRAVDA.
Požadavky
Hlavička afxdisp.h
ON_PROPNOTIFY_REFLECT
Makro ON_PROPNOTIFY_REFLECT, pokud se používá v mapě jímky událostí třídy obálky ovládacího prvku OLE, přijímá oznámení o vlastnosti odeslané ovládacím prvku před jejich zpracování kontejnerem ovládacího prvku.
ON_PROPNOTIFY_REFLECT(theClass, dispid, pfnRequest, pfnChanged)
Parametry
theClass
Třída, do které patří mapa jímky událostí.
dispid
ID odeslání vlastnosti zahrnuté v oznámení.
pfnRequest
Ukazatel na členovou funkci, která zpracovává OnRequestEdit
oznámení pro tuto vlastnost. Tato funkce by měla mít návratový typ BOOL a parametr BOOL* . Tato funkce by měla nastavit parametr na HODNOTU TRUE, aby se vlastnost mohla změnit a NEPRAVDA zakázat. Funkce by měla vrátit hodnotu TRUE, aby indikovala, že oznámení bylo zpracováno; jinak NEPRAVDA.
pfnChanged
Ukazatel na členovou funkci, která zpracovává OnChanged
oznámení pro tuto vlastnost. Funkce by měla mít návratový typ BOOL a žádné parametry. Funkce by měla vrátit hodnotu TRUE, aby indikovala, že oznámení bylo zpracováno; jinak NEPRAVDA.
Požadavky
Hlavička afxdisp.h