Sdílet prostřednictvím


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 technologie ActiveX kontejnery ovládacích prvků.

Mapy jímek událostí

Jméno 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 technologie ActiveX Kontejnery ovládacích prvků.

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 technologie ActiveX kontejnery ovládacích prvků.

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 OnRangeMouseDowndeklarová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

Viz také

Makra a globální objekty