Condividi tramite


Mappe sink di evento

Quando un controllo OLE incorporato genera un evento, il contenitore del controllo riceve l'evento usando un meccanismo, denominato "mappa sink eventi", fornito da MFC. Questa mappa sink di eventi designa le funzioni del gestore per ogni evento specifico, nonché i parametri di tali eventi. Per altre informazioni sulle mappe sink di eventi, vedere l'articolo Contenitori di controlli ActiveX.

Mappe sink di evento

Nome Descrizione
BEGIN_EVENTSINK_MAP Avvia la definizione di una mappa sink di eventi.
DECLARE_EVENTSINK_MAP Dichiara una mappa del sink di eventi.
END_EVENTSINK_MAP Termina la definizione di una mappa sink di eventi.
ON_EVENT Definisce un gestore eventi per un evento specifico.
ON_EVENT_RANGE Definisce un gestore eventi per un evento specifico generato da un set di controlli OLE.
ON_EVENT_REFLECT Riceve gli eventi generati dal controllo prima che vengano gestiti dal contenitore del controllo.
ON_PROPNOTIFY Definisce un gestore per la gestione delle notifiche delle proprietà da un controllo OLE.
ON_PROPNOTIFY_RANGE Definisce un gestore per la gestione delle notifiche delle proprietà da un set di controlli OLE.
ON_PROPNOTIFY_REFLECT Riceve le notifiche delle proprietà inviate dal controllo prima che vengano gestite dal contenitore del controllo.

BEGIN_EVENTSINK_MAP

Inizia la definizione della mappa del sink di eventi.

BEGIN_EVENTSINK_MAP(theClass, baseClass)

Parametri

theClass
Specifica il nome della classe del controllo il cui mapping del sink di eventi è.

Baseclass
Specifica il nome della classe base di theClass.

Osservazioni:

Nel file di implementazione (con estensione cpp) che definisce le funzioni membro per la classe avviare il mapping del sink di eventi con la macro BEGIN_EVENTSINK_MAP, quindi aggiungere voci di macro per ogni evento di cui ricevere notifica e completare la mappa sink eventi con la macro END_EVENTSINK_MAP.

Per altre informazioni sulle mappe del sink di eventi e sui contenitori di controlli OLE, vedere l'articolo Contenitori di controlli ActiveX.

Requisiti

Intestazione afxdisp.h

DECLARE_EVENTSINK_MAP

Un contenitore OLE può fornire una mappa del sink di eventi per specificare gli eventi a cui il contenitore riceverà una notifica.

DECLARE_EVENTSINK_MAP()

Osservazioni:

Usare la macro DECLARE_EVENTSINK_MAP alla fine della dichiarazione di classe. Quindi, in . File CPP che definisce le funzioni membro per la classe , utilizzare la macro BEGIN_EVENTSINK_MAP, le voci di macro per ogni evento di cui ricevere notifica e la macro END_EVENTSINK_MAP per dichiarare la fine dell'elenco di sink eventi.

Per altre informazioni sulle mappe sink di eventi, vedere l'articolo Contenitori di controlli ActiveX.

Requisiti

Intestazione afxwin.h

END_EVENTSINK_MAP

Termina la definizione della mappa sink di eventi.

END_EVENTSINK_MAP()

Requisiti

Intestazione afxdisp.h

ON_EVENT

Utilizzare la macro ON_EVENT per definire una funzione del gestore eventi per un evento generato da un controllo OLE.

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

Parametri

theClass
Classe a cui appartiene la mappa sink di eventi.

id
ID del controllo OLE.

Dispid
ID dispatch dell'evento generato dal controllo .

pfnHandler
Puntatore a una funzione membro che gestisce l'evento. Questa funzione deve avere un tipo restituito BOOL e i tipi di parametro che corrispondono ai parametri dell'evento (vedere vtsParams). La funzione deve restituire TRUE per indicare che l'evento è stato gestito; altrimenti FAL edizione Standard.

vtsParams
Sequenza di costanti VTS_ che specifica i tipi dei parametri per l'evento. Si tratta delle stesse costanti utilizzate nelle voci della mappa dispatch, ad esempio DISP_FUNCTION.

Osservazioni:

L'argomento vtsParams è un elenco di valori separati da spazi dalle costanti VTS_ . Uno o più di questi valori separati da spazi (non da virgole) specifica l'elenco di parametri della funzione. Ad esempio:

VTS_I2 VTS_BOOL

specifica un elenco contenente un numero intero breve seguito da un valore BOOL.

Per un elenco delle costanti VTS_ , vedere EVENT_CUSTOM.

Requisiti

Intestazione afxdisp.h

ON_EVENT_RANGE

Utilizzare la macro ON_EVENT_RANGE per definire una funzione del gestore eventi per un evento generato da un controllo OLE con UN ID di controllo all'interno di un intervallo contiguo di ID.

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

Parametri

theClass
Classe a cui appartiene la mappa sink di eventi.

idFirst
ID del controllo del primo controllo OLE nell'intervallo.

idLast
ID del controllo dell'ultimo controllo OLE nell'intervallo.

Dispid
ID dispatch dell'evento generato dal controllo .

pfnHandler
Puntatore a una funzione membro che gestisce l'evento. Questa funzione deve avere un tipo restituito BOOL, un primo parametro di tipo UINT (per l'ID controllo) e tipi di parametro aggiuntivi che corrispondono ai parametri dell'evento (vedere vtsParams). La funzione deve restituire TRUE per indicare che l'evento è stato gestito; altrimenti FAL edizione Standard.

vtsParams
Sequenza di costanti VTS_ che specifica i tipi dei parametri per l'evento. La prima costante deve essere di tipo VTS_I4, per l'ID del controllo. Si tratta delle stesse costanti utilizzate nelle voci della mappa dispatch, ad esempio DISP_FUNCTION.

Osservazioni:

L'argomento vtsParams è un elenco di valori separati da spazi dalle costanti VTS_ . Uno o più di questi valori separati da spazi (non da virgole) specifica l'elenco di parametri della funzione. Ad esempio:

VTS_I2 VTS_BOOL

specifica un elenco contenente un numero intero breve seguito da un valore BOOL.

Per un elenco delle costanti VTS_ , vedere EVENT_CUSTOM.

Esempio

Nell'esempio seguente viene illustrato un gestore eventi, per l'evento MouseDown, implementato per tre controlli ( IDC_MYCTRL1 tramite IDC_MYCTRL3). La funzione del gestore eventi, OnRangeMouseDown, viene dichiarata nel file di intestazione della classe dialog ( CMyDlg) come:

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

Il codice seguente è definito nel file di implementazione della classe dialog.

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()

Requisiti

Intestazione afxdisp.h

ON_EVENT_REFLECT

La macro ON_EVENT_REFLECT, se utilizzata nella mappa sink eventi della classe wrapper di un controllo OLE, riceve gli eventi generati dal controllo prima che vengano gestiti dal contenitore del controllo.

ON_EVENT_REFLECT(theClass,  dispid, pfnHandler,  vtsParams)

Parametri

theClass
Classe a cui appartiene la mappa sink di eventi.

Dispid
ID dispatch dell'evento generato dal controllo .

pfnHandler
Puntatore a una funzione membro che gestisce l'evento. Questa funzione deve avere un tipo restituito BOOL e i tipi di parametro che corrispondono ai parametri dell'evento (vedere vtsParams). La funzione deve restituire TRUE per indicare che l'evento è stato gestito; altrimenti FAL edizione Standard.

vtsParams
Sequenza di costanti VTS_ che specifica i tipi dei parametri per l'evento. Si tratta delle stesse costanti utilizzate nelle voci della mappa dispatch, ad esempio DISP_FUNCTION.

Osservazioni:

L'argomento vtsParams è un elenco di valori separati da spazi dalle costanti VTS_ .

Uno o più di questi valori separati da spazi (non da virgole) specifica l'elenco di parametri della funzione. Ad esempio:

VTS_I2 VTS_BOOL

specifica un elenco contenente un numero intero breve seguito da un valore BOOL.

Per un elenco delle costanti VTS_ , vedere EVENT_CUSTOM.

Requisiti

Intestazione afxdisp.h

ON_PROPNOTIFY

Utilizzare la macro ON_PROPNOTIFY per definire una voce della mappa sink eventi per la gestione delle notifiche delle proprietà da un controllo OLE.

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

Parametri

theClass
Classe a cui appartiene la mappa sink di eventi.

id
ID del controllo OLE.

Dispid
ID di invio della proprietà coinvolta nella notifica.

pfnRequest
Puntatore a una funzione membro che gestisce la OnRequestEdit notifica per questa proprietà. Questa funzione deve avere un tipo restituito BOOL e un parametro BOOL* . Questa funzione deve impostare il parametro su TRUE per consentire alla proprietà di modificare e fal edizione Standard di non consentire. La funzione dovrebbe restituire TRUE per indicare che la notifica è stata gestita; altrimenti FAL edizione Standard.

pfnChanged
Puntatore a una funzione membro che gestisce la OnChanged notifica per questa proprietà. La funzione deve avere un tipo restituito BOOL e un parametro UINT. La funzione deve restituire TRUE per indicare che la notifica è stata gestita; altrimenti FAL edizione Standard.

Osservazioni:

L'argomento vtsParams è un elenco di valori separati da spazi dalle costanti VTS_ . Uno o più di questi valori separati da spazi (non da virgole) specifica l'elenco di parametri della funzione. Ad esempio:

VTS_I2 VTS_BOOL

specifica un elenco contenente un numero intero breve seguito da un valore BOOL.

Per un elenco delle costanti VTS_ , vedere EVENT_CUSTOM.

ON_PROPNOTIFY_RANGE

Utilizzare la macro ON_PROPNOTIFY_RANGE per definire una voce della mappa sink eventi per la gestione delle notifiche delle proprietà da qualsiasi controllo OLE con UN ID di controllo all'interno di un intervallo contiguo di ID.

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

Parametri

theClass
Classe a cui appartiene la mappa sink di eventi.

idFirst
ID del controllo del primo controllo OLE nell'intervallo.

idLast
ID del controllo dell'ultimo controllo OLE nell'intervallo.

Dispid
ID di invio della proprietà coinvolta nella notifica.

pfnRequest
Puntatore a una funzione membro che gestisce la OnRequestEdit notifica per questa proprietà. Questa funzione deve avere un BOOL tipo restituito e BOOL*UINT parametri. La funzione deve impostare il parametro su TRUE per consentire alla proprietà di modificare e fal edizione Standard di non consentire. La funzione deve restituire TRUE per indicare che la notifica è stata gestita; altrimenti FAL edizione Standard.

pfnChanged
Puntatore a una funzione membro che gestisce la OnChanged notifica per questa proprietà. La funzione deve avere un BOOL tipo restituito e un UINT parametro. La funzione deve restituire TRUE per indicare che la notifica è stata gestita; altrimenti FAL edizione Standard.

Requisiti

Intestazione afxdisp.h

ON_PROPNOTIFY_REFLECT

La macro ON_PROPNOTIFY_REFLECT, se utilizzata nella mappa sink eventi della classe wrapper di un controllo OLE, riceve le notifiche delle proprietà inviate dal controllo prima che vengano gestite dal contenitore del controllo.

ON_PROPNOTIFY_REFLECT(theClass, dispid, pfnRequest, pfnChanged)

Parametri

theClass
Classe a cui appartiene la mappa sink di eventi.

Dispid
ID di invio della proprietà coinvolta nella notifica.

pfnRequest
Puntatore a una funzione membro che gestisce la OnRequestEdit notifica per questa proprietà. Questa funzione deve avere un tipo restituito BOOL e un parametro BOOL* . Questa funzione deve impostare il parametro su TRUE per consentire alla proprietà di modificare e fal edizione Standard di non consentire. La funzione dovrebbe restituire TRUE per indicare che la notifica è stata gestita; altrimenti FAL edizione Standard.

pfnChanged
Puntatore a una funzione membro che gestisce la OnChanged notifica per questa proprietà. La funzione deve avere un tipo restituito BOOL e nessun parametro. La funzione dovrebbe restituire TRUE per indicare che la notifica è stata gestita; altrimenti FAL edizione Standard.

Requisiti

Intestazione afxdisp.h

Vedi anche

Macro e globali