Événement Window.KeyPress (Visio)

Cet événement se produit lors de la pression d’une touche du clavier.

Syntaxe

expression. KeyPress (KeyAscii, CancelDefault)

Expression Variable qui représente un objet Window .

Parameters

Nom Requis/Facultatif Type de données Description
KeyAscii Obligatoire Long Valeur ASCII de la touche sur laquelle vous avez appuyé. Il peut s’agir de n’importe quel code de caractère ASCII.
CancelDefault Requis Boolean False si Microsoft Visio doit traiter le message reçu à partir de cet événement. True dans tous les autres cas.

Remarques

Si vous donnez la valeur True à AnnulerDéfaut, Visio ne traite pas le message reçu lorsque vous cliquez sur le bouton de la souris.

Contrairement à d’autres événements Visio, KeyPress n’a pas le préfixe Query, mais il s’agit toujours d’un événement de requête. Autrement dit, vous pouvez annuler le traitement du message envoyé par KeyPress, soit en définissant CancelDefault sur True, soit, si vous utilisez la méthode VisEventProc pour gérer l’événement, en retournant True. Pour plus d'informations, reportez-vous aux rubriques relatives à la méthode VisEventProc et à tous les événements de requête (par exemple, l'événement QueryCancelSuspend) dans la présente référence.

Remarque

Le fait d’appuyer sur une combinaison de touches d’accélérateur, par exemple Ctrl+C, ne déclenche pas l’événement KeyPress .

Si vous utilisez Microsoft Visual Basic ou Visual Basic pour Applications (VBA), la syntaxe de cette rubrique décrit un moyen générique pour gérer efficacement les événements.

Si vous souhaitez créer vos propres objets Event , utilisez la méthode Add ou AddAdvise .

Pour créer un objet Event qui exécute un module complémentaire, utilisez la méthode Add applicable à la collection EventList.

Pour créer un objet Event qui reçoit des notifications, utilisez la méthode AddAdvise.

Pour rechercher le code de l’événement à créer, voir Codes d’événement.

Exemple

Ce module de classe indique comment définir une classe récepteur appelée KeyboardListener à l'écoute des événements déclenchés par des actions de clavier dans la fenêtre active. Il déclare la variable objet vsoWindow à l'aide du mot clé WithEvents. Le module de classe contient également des gestionnaires d'événements pour KeyDown, KeyPress et KeyUp.

Pour exécuter cet exemple, insérez un nouveau module de classe dans votre projet VBA, nommez-le KeyboardListener et insérez le code suivant dans le module.

Dim WithEvents vsoWindow As Visio.Window 
 
Private Sub Class_Initialize() 
 
 Set vsoWindow = ActiveWindow 
 
End Sub 
 
Private Sub Class_Terminate() 
 
 Set vsoWindow = Nothing 
 
End Sub 
 
Private Sub vsoWindow_KeyDown(ByVal KeyCode As Long, ByVal KeyButtonState As Long, CancelDefault As Boolean) 
 
 Debug.Print "KeyCode is "; KeyCode 
 Debug.Print "KeyButtonState is" ; KeyButtonState 
 
End Sub 
 
Private Sub vsoWindow_KeyPress(ByVal KeyAscii As Long, CancelDefault As Boolean) 
 
 Debug.Print "KeyAscii value is "; KeyAscii 
 
End Sub 
 
Private Sub vsoWindow_KeyUp(ByVal KeyCode As Long, ByVal KeyButtonState As Long, CancelDefault As Boolean) 
 
 Debug.Print "KeyCode is "; KeyCode 
 Debug.Print "KeyButtonState is" ; KeyButtonState 
 
End Sub

Ensuite, insérez le code suivant dans le projet ThisDocument .

Dim myKeyboardListener As KeyboardListener 
 
Private Sub Document_DocumentSaved(ByVal doc As IVDocument) 
 
 Set myKeyboardListener = New KeyboardListener 
 
End Sub 
 
Private Sub Document_BeforeDocumentClose(ByVal doc As IVDocument) 
 
 Set myKeyboardListener = Nothing 
 
End Sub

Enregistrez le document pour initialiser la classe, puis cliquez sur n'importe quelle touche pour déclencher l'événement KeyPress. Dans la fenêtre Exécution, le gestionnaire affiche le code ASCII de la touche sur laquelle vous avez appuyé pour déclencher l'événement.

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.