ON_EVENT_RANGE
Utilisez la macro d' ON_EVENT_RANGE pour définir une fonction du gestionnaire d'événements pour un événement déclenché par n'importe quel contrôle d'OLE ayant un ID de contrôle dans une plage contiguë des identificateurs.
ON_EVENT_RANGE(theClass, idFirst, idLast, dispid, pfnHandler, vtsParams )
Paramètres
theClass
La classe à laquelle la table de récepteurs d'événements appartient.idFirst
ID du contrôle du premier contrôle OLE dans la plage.idLast
ID du contrôle du premier contrôle OLE dans la plage.dispid
L'ID de dispatch de l'événement déclenché par le contrôle.pfnHandler
Pointeur vers une méthode qui gère l'événement. Cette fonction doit avoir un type de retour de BOOL, un premier paramètre de type UINT (pour l'ID de contrôle), ainsi que des types de paramètres supplémentaires correspondant aux paramètres de l'événement (consultez vtsParams). La fonction doit retourner TRUE pour indiquer que l'évènement a été géré ; sinon FALSE.vtsParams
Une séquence de constantes de VTS_ qui spécifie les types de paramètres pour l'événement. La première constante doit être de type VTS_I4, pour l'ID de contrôle Ce sont les mêmes constantes utilisées dans les entrées de table de dispatch telles que DISP_FUNCTION.
Notes
L'argument vtsParams est une liste séparée aux espaces de valeurs constantes de VTS_. Une ou plusieurs de ces valeurs séparées par des espaces (sans virgule) spécifie 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 de MouseDown, implémenté pour trois contrôles (IDC_MYCTRL1 via IDC_MYCTRL3). La fonction du gestionnaire d'évènements, OnRangeMouseDown, est déclarée dans le fichier d'en-tête de la classe de la boîte 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 la boîte 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()
Configuration requise
Header: afxdisp.h