Partager via


Tables de récepteurs d'événements

Lorsqu’un contrôle OLE incorporé déclenche un événement, le conteneur du contrôle reçoit l’événement à l’aide d’un mécanisme, appelé « mappage du récepteur d’événements », fourni par MFC. Ce mappage récepteur d’événements désigne les fonctions de gestionnaire pour chaque événement spécifique, ainsi que les paramètres de ces événements. Pour plus d’informations sur les mappages de récepteur d’événements, consultez l’article Conteneurs de contrôle ActiveX.

Tables de récepteurs d'événements

Nom Description
BEGIN_EVENTSINK_MAP Démarre la définition d’un mappage récepteur d’événements.
DECLARE_EVENTSINK_MAP Déclare un mappage récepteur d’événements.
END_EVENTSINK_MAP Termine la définition d’un mappage récepteur d’événements.
ON_EVENT Définit un gestionnaire d’événements pour un événement spécifique.
ON_EVENT_RANGE Définit un gestionnaire d’événements pour un événement spécifique déclenché à partir d’un ensemble de contrôles OLE.
ON_EVENT_REFLECT Reçoit les événements déclenchés par le contrôle avant qu’ils ne soient gérés par le conteneur du contrôle.
ON_PROPNOTIFY Définit un gestionnaire pour la gestion des notifications de propriétés à partir d’un contrôle OLE.
ON_PROPNOTIFY_RANGE Définit un gestionnaire pour la gestion des notifications de propriétés à partir d’un ensemble de contrôles OLE.
ON_PROPNOTIFY_REFLECT Reçoit les notifications de propriété envoyées par le contrôle avant qu’elles ne soient gérées par le conteneur du contrôle.

BEGIN_EVENTSINK_MAP

Commence la définition de votre mappage de récepteur d’événements.

BEGIN_EVENTSINK_MAP(theClass, baseClass)

Paramètres

theClass
Spécifie le nom de la classe de contrôle dont le mappage du récepteur d’événements est celui-ci.

Baseclass
Spécifie le nom de la classe de base de la Classe.

Notes

Dans le fichier d’implémentation (.cpp) qui définit les fonctions membres de votre classe, démarrez le mappage du récepteur d’événements avec la macro BEGIN_EVENTSINK_MAP, puis ajoutez des entrées de macro pour chaque événement à avertir et terminez la carte du récepteur d’événements avec la macro END_EVENTSINK_MAP.

Pour plus d’informations sur les mappages de récepteur d’événements et les conteneurs de contrôle OLE, consultez l’article Conteneurs de contrôle ActiveX.

Spécifications

En-tête afxdisp.h

DECLARE_EVENTSINK_MAP

Un conteneur OLE peut fournir un mappage récepteur d’événements pour spécifier les événements dont votre conteneur sera informé.

DECLARE_EVENTSINK_MAP()

Notes

Utilisez la macro DECLARE_EVENTSINK_MAP à la fin de votre déclaration de classe. Puis, dans le . Fichier CPP qui définit les fonctions membres de la classe, utilisez la macro BEGIN_EVENTSINK_MAP, les entrées de macro pour chacun des événements à notifier et la macro END_EVENTSINK_MAP pour déclarer la fin de la liste des récepteurs d’événements.

Pour plus d’informations sur les mappages de récepteur d’événements, consultez l’article Conteneurs de contrôle ActiveX.

Spécifications

En-tête afxwin.h

END_EVENTSINK_MAP

Termine la définition de votre mappage de récepteur d’événements.

END_EVENTSINK_MAP()

Spécifications

En-tête afxdisp.h

ON_EVENT

Utilisez la macro ON_EVENT pour définir une fonction de gestionnaire d’événements pour un événement déclenché par un contrôle OLE.

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

Paramètres

theClass
Classe à laquelle appartient ce mappage récepteur d’événements.

id
ID de contrôle du contrôle OLE.

dispid
ID de répartition de l’événement déclenché par le contrôle.

pfnHandler
Pointeur vers une fonction membre qui gère l’événement. Cette fonction doit avoir un type de retour BOOL et des types de paramètres qui correspondent aux paramètres de l’événement (voir vtsParams). La fonction doit retourner TRUE pour indiquer que l’événement a été géré ; sinon FALSE.

vtsParams
Séquence de constantes VTS_ qui spécifie les types des paramètres de l’événement. Il s’agit des mêmes constantes que celles utilisées dans les entrées de mappage de répartition, telles que DISP_FUNCTION.

Notes

L’argument vtsParams est une liste de valeurs séparées par espace des constantes VTS_ . Une ou plusieurs de ces valeurs séparées par des espaces (et non des virgules) spécifient la liste des paramètres de la fonction. Par exemple :

VTS_I2 VTS_BOOL

spécifie une liste contenant un entier court suivi d’un BOOL.

Pour obtenir la liste des constantes VTS_ , consultez EVENT_CUSTOM.

Spécifications

En-tête afxdisp.h

ON_EVENT_RANGE

Utilisez la macro ON_EVENT_RANGE pour définir une fonction de gestionnaire d’événements pour un événement déclenché par un contrôle OLE ayant un ID de contrôle dans une plage contiguë d’ID.

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

Paramètres

theClass
Classe à laquelle appartient ce mappage récepteur d’événements.

idFirst
ID de contrôle du premier contrôle OLE dans la plage.

idLast
ID de contrôle du dernier contrôle OLE dans la plage.

dispid
ID de répartition de l’événement déclenché par le contrôle.

pfnHandler
Pointeur vers une fonction membre qui gère l’événement. Cette fonction doit avoir un type de retour BOOL, un premier paramètre de type UINT (pour l’ID de contrôle) et des types de paramètres supplémentaires qui correspondent aux paramètres de l’événement (voir vtsParams). La fonction doit retourner TRUE pour indiquer que l’événement a été géré ; sinon FALSE.

vtsParams
Séquence de constantes VTS_ qui spécifie les types des paramètres de l’événement. La première constante doit être de type VTS_I4, pour l’ID de contrôle. Il s’agit des mêmes constantes que celles utilisées dans les entrées de mappage de répartition, telles que DISP_FUNCTION.

Notes

L’argument vtsParams est une liste de valeurs séparées par espace des constantes VTS_ . Une ou plusieurs de ces valeurs séparées par des espaces (et non des virgules) spécifient la liste des paramètres de la fonction. Par exemple :

VTS_I2 VTS_BOOL

spécifie une liste contenant un entier court suivi d’un BOOL.

Pour obtenir la liste des constantes VTS_ , consultez EVENT_CUSTOM.

Exemple

L’exemple suivant illustre un gestionnaire d’événements, pour l’événement MouseDown, implémenté pour trois contrôles (IDC_MYCTRL1 via IDC_MYCTRL3). La fonction du gestionnaire d’événements, est OnRangeMouseDowndéclarée dans le fichier d’en-tête de la classe de dialogue ( CMyDlg) comme suit :

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

Le code ci-dessous est défini dans le fichier d’implémentation de la classe de dialogue.

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

Spécifications

En-tête afxdisp.h

ON_EVENT_REFLECT

La macro ON_EVENT_REFLECT, lorsqu’elle est utilisée dans la carte du récepteur d’événements de la classe wrapper d’un contrôle OLE, reçoit les événements déclenchés par le contrôle avant qu’ils ne soient gérés par le conteneur du contrôle.

ON_EVENT_REFLECT(theClass,  dispid, pfnHandler,  vtsParams)

Paramètres

theClass
Classe à laquelle appartient ce mappage récepteur d’événements.

dispid
ID de répartition de l’événement déclenché par le contrôle.

pfnHandler
Pointeur vers une fonction membre qui gère l’événement. Cette fonction doit avoir un type de retour BOOL et des types de paramètres qui correspondent aux paramètres de l’événement (voir vtsParams). La fonction doit retourner TRUE pour indiquer que l’événement a été géré ; sinon FALSE.

vtsParams
Séquence de constantes VTS_ qui spécifie les types des paramètres de l’événement. Il s’agit des mêmes constantes que celles utilisées dans les entrées de mappage de répartition, telles que DISP_FUNCTION.

Notes

L’argument vtsParams est une liste de valeurs séparées par espace des constantes VTS_ .

Une ou plusieurs de ces valeurs séparées par des espaces (et non des virgules) spécifient la liste des paramètres de la fonction. Par exemple :

VTS_I2 VTS_BOOL

spécifie une liste contenant un entier court suivi d’un BOOL.

Pour obtenir la liste des constantes VTS_ , consultez EVENT_CUSTOM.

Spécifications

En-tête afxdisp.h

ON_PROPNOTIFY

Utilisez la macro ON_PROPNOTIFY pour définir une entrée de carte récepteur d’événements pour gérer les notifications de propriétés à partir d’un contrôle OLE.

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

Paramètres

theClass
Classe à laquelle appartient ce mappage récepteur d’événements.

id
ID de contrôle du contrôle OLE.

dispid
ID de distribution de la propriété impliquée dans la notification.

pfnRequest
Pointeur vers une fonction membre qui gère la OnRequestEdit notification pour cette propriété. Cette fonction doit avoir un type de retour BOOL et un paramètre BOOL* . Cette fonction doit définir le paramètre sur TRUE pour autoriser la propriété à modifier et FALSE à interdire. La fonction doit retourner TRUE pour indiquer que la notification a été gérée ; sinon FALSE.

pfnChanged
Pointeur vers une fonction membre qui gère la OnChanged notification pour cette propriété. La fonction doit avoir un type de retour BOOL et un paramètre UINT. La fonction doit retourner TRUE pour indiquer que la notification a été gérée ; sinon FALSE.

Notes

L’argument vtsParams est une liste de valeurs séparées par espace des constantes VTS_ . Une ou plusieurs de ces valeurs séparées par des espaces (et non des virgules) spécifient la liste des paramètres de la fonction. Par exemple :

VTS_I2 VTS_BOOL

spécifie une liste contenant un entier court suivi d’un BOOL.

Pour obtenir la liste des constantes VTS_ , consultez EVENT_CUSTOM.

ON_PROPNOTIFY_RANGE

Utilisez la macro ON_PROPNOTIFY_RANGE pour définir une entrée de carte récepteur d’événements pour gérer les notifications de propriétés à partir de n’importe quel contrôle OLE ayant un ID de contrôle dans une plage contiguë d’ID.

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

Paramètres

theClass
Classe à laquelle appartient ce mappage récepteur d’événements.

idFirst
ID de contrôle du premier contrôle OLE dans la plage.

idLast
ID de contrôle du dernier contrôle OLE dans la plage.

dispid
ID de distribution de la propriété impliquée dans la notification.

pfnRequest
Pointeur vers une fonction membre qui gère la OnRequestEdit notification pour cette propriété. Cette fonction doit avoir un BOOL type de retour et des UINTBOOL* paramètres. La fonction doit définir le paramètre sur TRUE pour autoriser la propriété à modifier et FALSE à interdire. La fonction doit retourner TRUE pour indiquer que la notification a été gérée ; sinon FALSE.

pfnChanged
Pointeur vers une fonction membre qui gère la OnChanged notification pour cette propriété. La fonction doit avoir un BOOL type de retour et un UINT paramètre. La fonction doit retourner TRUE pour indiquer que la notification a été gérée ; sinon FALSE.

Spécifications

En-tête afxdisp.h

ON_PROPNOTIFY_REFLECT

La macro ON_PROPNOTIFY_REFLECT, lorsqu’elle est utilisée dans la carte du récepteur d’événements de la classe wrapper d’un contrôle OLE, reçoit les notifications de propriété envoyées par le contrôle avant qu’elles ne soient gérées par le conteneur du contrôle.

ON_PROPNOTIFY_REFLECT(theClass, dispid, pfnRequest, pfnChanged)

Paramètres

theClass
Classe à laquelle appartient ce mappage récepteur d’événements.

dispid
ID de distribution de la propriété impliquée dans la notification.

pfnRequest
Pointeur vers une fonction membre qui gère la OnRequestEdit notification pour cette propriété. Cette fonction doit avoir un type de retour BOOL et un paramètre BOOL* . Cette fonction doit définir le paramètre sur TRUE pour autoriser la propriété à modifier et FALSE à interdire. La fonction doit retourner TRUE pour indiquer que la notification a été gérée ; sinon FALSE.

pfnChanged
Pointeur vers une fonction membre qui gère la OnChanged notification pour cette propriété. La fonction doit avoir un type de retour BOOL et aucun paramètre. La fonction doit retourner TRUE pour indiquer que la notification a été gérée ; sinon FALSE.

Spécifications

En-tête afxdisp.h

Voir aussi

Macros et globals