Partager 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 du fait qu'ils sont automatiquement déclenchés par la classe COleControl.COleControl contient les fonctions membres prédéfinies qui déclenchent des événements provenant des actions courantes.Certaines actions courantes implémentées par COleControl incluent unique et double-clique sur le contrôle, les événements de clavier, et les modifications dans l'état des boutons de souris.Les entrées de mappage d'événements pour les événements stock sont toujours précédées par le préfixe d' EVENT_STOCK .

Événements stock pris en charge par l'Assistant Ajout d'événement

La classe d' COleControl fournit dix événements stock, répertoriés dans le tableau suivant.Vous pouvez spécifier les événements à dans votre contrôle à l'aide de Assistant Ajout d'événement.

Événements stock

Événement

Déclencher la fonction

Commentaires

Cliquez sur

FireClick void ()

Déclenché lorsque le contrôle capture de la souris, tout message de BUTTONUP (gauche, milieu, ou droite) est accepté, et le bouton est libéré sur le contrôle.Les événements stock de MouseDown et de MouseUp se produisent avant cet événement.

Entrée de table d'événements : EVENT_STOCK_CLICK( )

DblClick

FireDblClick void ()

Semblable au clic mais déclenché lorsqu'un message de BUTTONDBLCLK est accepté.

Entrée de table d'événements : EVENT_STOCK_DBLCLICK( )

Erreur

scode, LPCSTR lpszDescription, UINT nHelpID = 0 )devoid FireError( SCODE

Déclenché lorsqu'une erreur se produit dans votre contrôle ActiveX en dehors de la portée d'un appel de méthode ou d'un accès à la propriété.

Entrée de table d'événements : EVENT_STOCK_ERROREVENT( )

KeyDown

void FireKeyDown( short nChar, short nShiftState )

Déclenché lorsqu'un message d' WM_SYSKEYDOWN ou d' WM_KEYDOWN est accepté.

Entrée de table d'événements : EVENT_STOCK_KEYDOWN( )

KeyPress

void FireKeyPress( short* pnChar )

Déclenché lorsqu'un message d' WM_CHAR est accepté.

Entrée de table d'événements : EVENT_STOCK_KEYPRESS( )

KeyUp

void FireKeyUp( short nChar, short nShiftState )

Déclenché lorsqu'un message d' WM_SYSKEYUP ou d' WM_KEYUP est accepté.

Entrée de table d'événements : EVENT_STOCK_KEYUP( )

MouseDown

void FireMouseDown( short nButton, short nShiftState, float X, float y )

Déclenché si le BUTTONDOWN (gauche, milieu, ou droite) est accepté.La souris est capturée immédiatement avant que cet événement est déclenché.

Entrée de table d'événements : EVENT_STOCK_MOUSEDOWN( )

MouseMove

void FireMouseMove( short nButton, short nShiftState, float X, float y )

Déclenché lorsqu'un message d' WM_MOUSEMOVE est accepté.

Entrée de table d'événements : EVENT_STOCK_MOUSEMOVE( )

MouseUp

void FireMouseUp( short nButton, short nShiftState, float X, float y )

Déclenché si le BUTTONUP (gauche, milieu, ou droite) est accepté.La capture de la souris est libérée avant que cet événement est déclenché.

Entrée de table d'événements : EVENT_STOCK_MOUSEUP( )

ReadyStateChange

FireReadyStateChange void ()

Déclenché lorsque le contrôle effectue des transitions vers l'état prêt suivant en raison de la quantité de données les ont reçu.

Entrée de table d'événements : EVENT_STOCK_READYSTATECHANGE( )

Ajouter un événement boursières à l'aide de l'Assistant Ajout d'événement

Ajoutant des événements stock requiert moins de travail que les événements ajout d'utilisateurs car la mise à déclencher de l'événement lui-même est gérée automatiquement par la classe de base, COleControl.La procédure suivante ajoute un événement boursières à un contrôle qui a été développé à l'aide L'Assistant Contrôle ActiveX MFC.L'événement, KeyPress appelé, le déclenche lorsqu'une touche est utilisée et le contrôle est actif.Cette procédure peut également être utilisée pour ajouter d'autres événements stock.Remplacez le nom de l'évènement stock sélectionné pour KeyPress.

Pour ajouter l'événement d'actions KeyPress à l'aide de l'Assistant Ajout d'événement

  1. Chargez le projet de votre contrôle.

  2. Dans l'Affichage de classes, cliquez avec le bouton droit sur votre classe de contrôles ActiveX pour ouvrir le menu contextuel.

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

    Cela ouvre l'Assistant Ajout d'événement.

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

  5. Cliquez sur Terminer.

Modifications de l'Assistant Ajout d'événements pour les événements stock

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

EVENT_STOCK_KEYPRESS()

Ajout de ce code déclenche un événement KeyPress lorsqu'un message d' WM_CHAR est reçu et le contrôle est actif.L'événement KeyPress peut être déclenché à d'autres moments en appelant la fonction de mise à déclencher (par exemple, FireKeyPress) de code.

Assistant Ajout d'événement ajoute la ligne de code suivante au fichier .IDL du contrôle :

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

Cette ligne associe l'événement KeyPress avec son ID de dispatch standard et permet au conteneur d'anticiper l'événement KeyPress.

Voir aussi

Référence

COleControl, classe

Concepts

Contrôles ActiveX MFC

Contrôles ActiveX MFC : méthodes