Contrôles ActiveX MFC : événements
Les contrôles ActiveX utilisent des événements pour avertir un conteneur que quelque chose est arrivé au contrôle. Les clics sur le contrôle, les données saisies à l'aide du clavier et les modifications de l'état du contrôle sont des exemples courants d'événements. Lorsque ces actions se produisent, le contrôle déclenche un événement pour avertir le conteneur.
Les événements sont également appelés des messages.
MFC prend en charge deux types d'événements : stock et personnalisés. Les événements stock sont ces événements que la classe COleControl gère automatiquement. Pour obtenir la liste complète des événements boursiers, consultez l’article MFC ActiveX Controls : Adding Stock Events. Les événements personnalisés permettent à un contrôle d'avertir le conteneur lorsqu'une action spécifique à ce contrôle se produit. Une modification de l'état interne d'un contrôle ou la réception d'un certain message de fenêtre en sont des exemples.
Pour que votre contrôle déclenche correctement des événements, votre classe de contrôle doit mapper chaque événement du contrôle à une fonction membre qui doit être appelée lorsque l'événement associé se produit. Ce mécanisme de mappage (appelé table d'événements) centralise les informations relatives à l'événement et permet à Visual Studio d'accéder et de manipuler facilement les événements du contrôle. Cette table d'événements est déclarée par la macro ci-après, située dans le fichier d'en-tête (.H) de la déclaration de classe du contrôle :
DECLARE_EVENT_MAP()
Une fois la table d'événements déclarée, elle doit être définie dans le fichier d'implémentation (.CPP) de votre contrôle. Les lignes de code suivantes définissent la table d'événements, ce qui permet à votre contrôle de déclencher des événements spécifiques :
BEGIN_EVENT_MAP(CMyAxUICtrl, COleControl)
END_EVENT_MAP()
Si vous utilisez l'Assistant Contrôle ActiveX MFC pour créer le projet, celui-ci ajoute automatiquement ces lignes. Dans le cas contraire, vous devez ajouter manuellement ces lignes.
Avec l'affichage de classes, vous pouvez ajouter des événements stock pris en charge par la classe COleControl
, ou des événements personnalisés que vous définissez. Pour chaque nouvel événement, l'affichage de classes ajoute automatiquement l'entrée correcte à la table d'événements du contrôle et au fichier .IDL du contrôle.
Deux autres articles traitent des événements en détail :
Voir aussi
Contrôles ActiveX MFC
Contrôles ActiveX MFC : méthodes
COleControl, classe