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 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 OnRangeMouseDown
dé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 UINT
BOOL*
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