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.