Partage via


Contrôles ActiveX MFC : ajout d'événements stock à un contrôle ActiveX

Les événements stock diffèrent des événements personnalisés dans la mesure où ils sont déclenchés automatiquement par la classe COleControl. COleControl contient des fonctions membres prédéfinies qui déclenchent des événements résultant d’actions courantes. Certaines actions courantes implémentées en COleControl incluant des clics simples et doubles sur le contrôle, les événements clavier et les modifications apportées à l’état des boutons de la souris. Les entrées de mappage d’événements pour les événements boursiers sont toujours précédées du préfixe EVENT_STOCK.

Événements stock pris en charge par l’Assistant Ajouter un événement

La COleControl classe fournit dix événements boursiers, répertoriés dans le tableau suivant. Vous pouvez spécifier les événements souhaités dans votre contrôle à l’aide de l’Assistant Ajouter un événement.

Événements boursiers

Événement Fonction de déclenchement Commentaires
Cliquez void FireClick( ) Déclenché lorsque le contrôle capture la souris, tout message BUTTONUP (gauche, milieu ou droit) est reçu, et le bouton est libéré sur le contrôle. Les événements MouseDown et MouseUp boursiers se produisent avant cet événement.

Entrée de carte d’événements : EVENT_STOCK_CLICK( )
DblClick void FireDblClick( ) Similaire à Click mais déclenché lorsqu’un message BUTTONDBLCLK est reçu.

Entrée de carte d’événements : EVENT_STOCK_DBLCLICK( )
Erreur void FireError( SCODEscode, LPCSTRlpszDescription, UINTnHelpID= 0 ) Déclenché lorsqu’une erreur se produit dans votre contrôle ActiveX en dehors de l’étendue d’un appel de méthode ou d’un accès aux propriétés.

Entrée de carte d’événements : EVENT_STOCK_ERROREVENT( )
KeyDown void FireKeyDown( shortnChar, shortnShiftState) Déclenché lorsqu’un WM_SYSKEYDOWN ou WM_KEYDOWN un message est reçu.

Entrée de carte d’événements : EVENT_STOCK_KEYDOWN( )
KeyPress void FireKeyPress( short*pnChar) Déclenché lorsqu’un WM_CHAR message est reçu.

Entrée de carte d’événements : EVENT_STOCK_KEYPRESS( )
KeyUp void FireKeyUp( shortnChar, shortnShiftState) Déclenché lorsqu’un WM_SYSKEYUP ou WM_KEYUP un message est reçu.

Entrée de carte d’événements : EVENT_STOCK_KEYUP( )
Mousedown void FireMouseDown( shortnButton, shortnShiftState, floatx, floaty) Déclenché si un BUTTONDOWN (gauche, milieu ou droit) est reçu. La souris est capturée immédiatement avant le déclenchement de cet événement.

Entrée de carte d’événements : EVENT_STOCK_MOUSEDOWN( )
Mousemove void FireMouseMove( shortnButton, shortnShiftState, floatx, floaty) Déclenché lorsqu’un message WM_MOUSEMOVE est reçu.

Entrée de carte d’événements : EVENT_STOCK_MOUSEMOVE( )
Mouseup void FireMouseUp( shortnButton, shortnShiftState, floatx, floaty) Déclenché si un BUTTONUP (gauche, milieu ou droit) est reçu. La capture de la souris est libérée avant le déclenchement de cet événement.

Entrée de carte d’événements : EVENT_STOCK_MOUSEUP( )
ReadyStateChange void FireReadyStateChange( ) Déclenché lorsqu’un contrôle passe à l’état prêt suivant en raison de la quantité de données reçues.

Entrée de carte d’événements : EVENT_STOCK_READYSTATECHANGE( )

Ajout d’un événement stock à l’aide de l’Assistant Ajouter un événement

L’ajout d’événements stock nécessite moins de travail que l’ajout d’événements personnalisés, car le déclenchement de l’événement réel est géré automatiquement par la classe de base. COleControl La procédure suivante ajoute un événement stock à un contrôle développé à l’aide de l’Assistant Contrôle ActiveX MFC. L’événement, appelé KeyPress, se déclenche lorsqu’une touche est enfoncée et que le contrôle est actif. Cette procédure peut également être utilisée pour ajouter d’autres événements boursiers. Remplacez le nom de l’événement stock sélectionné pour KeyPress.

Pour ajouter l’événement stock KeyPress à l’aide de l’Assistant Ajouter un événement

  1. Chargez votre projet de contrôle.

  2. En mode Classe, cliquez avec le bouton droit sur votre classe de contrôle ActiveX pour ouvrir le menu contextuel.

  3. Dans le menu contextuel, cliquez sur Ajouter , puis sur Ajouter un événement.

    L’Assistant Ajouter un événement s’ouvre.

  4. Dans la liste déroulante Nom de l’événement, sélectionnez KeyPress.

  5. Cliquez sur Terminer.

Ajouter des modifications de l’Assistant Événements pour les événements boursiers

Étant donné que les événements stock sont gérés par la classe de base du contrôle, l’Assistant Ajout d’événements ne modifie pas votre déclaration de classe d’une manière quelconque. Il ajoute l’événement à la carte d’événements du contrôle et effectue une entrée dans son . Fichier IDL. La ligne suivante est ajoutée à la carte d’événements du contrôle, située dans l’implémentation de la classe de contrôle (. Fichier CPP) :

EVENT_STOCK_KEYPRESS()

L’ajout de ce code déclenche un événement KeyPress lorsqu’un message WM_CHAR est reçu et que le contrôle est actif. L’événement KeyPress peut être déclenché à d’autres moments en appelant sa fonction de déclenchement (par exemple, FireKeyPress) à partir du code de contrôle.

L’Assistant Ajouter un événement ajoute la ligne de code suivante au contrôle. Fichier IDL :

[id(DISPID_KEYPRESS)] void KeyPress(SHORT* KeyAscii);

Cette ligne associe l’événement KeyPress à son ID de répartition standard et permet au conteneur d’anticiper l’événement KeyPress.

Voir aussi

Contrôles ActiveX MFC
Contrôles ActiveX MFC : méthodes
COleControl, classe