Compartir a través de


Evento Application.KeyDown (Visio)

Se produce cuando se presiona una tecla del teclado.

Sintaxis

expresión. KeyDown (KeyCode, KeyButtonState, CancelDefault)

expresión Variable que representa un objeto Application.

Parámetros

Nombre Obligatorio/opcional Tipo de datos Descripción
KeyCode Obligatorio Long Tecla que se ha presionado. Los valores posibles se declaran en constantes keycode.
KeyButtonState Necesario Long Estado de las teclas Mayús y Ctrl del evento. Puede ser una combinación de los valores declarados en VisKeyButtonFlags. Por ejemplo, si KeyButtonState devuelve 12, indica que el usuario mantiene presionadas las teclas Mayús y Ctrl.
CancelDefault Obligatorio Boolean Su valor es False si Microsoft Visio va a procesar el mensaje que recibe de este evento; en caso contrario, es True.

Comentarios

Si establece CancelDefault enTrue, Visio no procesa el mensaje recibido cuando se hace clic en el botón del mouse.

A diferencia de otros eventos de Visio, KeyDown no tiene el prefijo Query, pero sigue siendo un evento de consulta. Es decir, puede cancelar el procesamiento del mensaje enviado por KeyDown, ya sea estableciendo CancelDefault en True, o bien, si usa el método VisEventProc para controlar el evento, devolviendo True. Para obtener más información, vea los temas del método VisEventProc y de cualquiera de los eventos de consulta (por ejemplo, el evento QueryCancelSuspend ).

Nota:

Al presionar una combinación de teclas de aceleración, por ejemplo, Ctrl+C, no se desencadena el evento KeyDown .

Si utiliza VBA, la sintaxis en este tema describe una manera común y eficaz de controlar los eventos.

Si desea crear sus propios objetos Event , use el método Add o AddAdvise .

Para crear un objeto Event que ejecute un complemento, use el método Add, ya que se aplica a la colección EventList.

Para crear un objeto Event que reciba notificaciones, use el método AddAdvise.

Para encontrar un código de evento para el evento que desea crear, vea el tema sobre los códigos de evento.

Ejemplo:

Este módulo de clase muestra cómo definir una clase de sincronización denominada KeyboardListener que escucha eventos desencadenados por acciones de teclado en la ventana activa. Declara la variable de objeto vsoWindow mediante la palabra clave WithEvents. El módulo de clase contiene asimismo los controladores de los eventos KeyDown, KeyPress y KeyUp.

Para ejecutar este ejemplo, inserte un nuevo módulo de clase en el proyecto de VBA, asígnele el nombre KeyboardListener e inserte el código siguiente en el módulo.

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

A continuación, inserte el código siguiente en el proyecto 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

Guarde el documento para inicializar la clase y, a continuación, presione cualquier tecla para desencadenar un evento KeyDown. En la ventana Inmediato, el controlador imprime el código de la tecla que se presionó para desencadenar el evento y el estado de las teclas Mayús y Ctrl en el momento en que se desencadenó el evento.

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.