Evento Windows.KeyPress (Visio)Windows.KeyPress Event (Visio)

Ocorre quando uma tecla do teclado é pressionada.Occurs when a keyboard key is pressed.

SintaxeSyntax

Private Sub expressão _ 'KeyPress' (ByVal KeyAscii como longo , ByVal CancelDefault como booleano)Private Sub expression _'KeyPress'(ByVal KeyAscii As Long , ByVal CancelDefault As Boolean)

expressão Uma variável que representa um objeto Windows .expression A variable that represents a Windows object.

ParâmetrosParameters

NomeName Obrigatório/OpcionalRequired/Optional Tipo de dadosData type DescriçãoDescription
KeyAsciiKeyAscii ObrigatórioRequired LongLong O valor ASCII da chave que foi pressionado.The ASCII value of the key that was pressed. Consulte Comentários para obter os valores possíveis.See Remarks for possible values.
CancelDefaultCancelDefault ObrigatórioRequired BooleanBoolean False se o Microsoft Visio deve processar a mensagem que recebe desse evento; caso contrário, True.False if Microsoft Visio should process the message it receives from this event; otherwise, True.

ComentáriosRemarks

Valores possíveis para KeyAscii são os códigos ASCII.Possible values for KeyAscii are the ASCII codes. Para ver uma lista desses códigos, pesquise "Códigos de caracteres ASCII" no MSDN.To see a list of these codes, search for "ASCII character codes" on MSDN.

Se você definiu CancelDefault como True , o Visio não processará a mensagem recebida quando o botão do mouse for clicado.If you set CancelDefault to True , Visio does not process the message received when the mouse button is clicked.

Ao contrário de alguns outros eventos do Visio, KeyPress não tem o prefixo "Query", mas ainda é um evento de consulta.Unlike some other Visio events, KeyPress does not have the prefix "Query," but it is still a query event. Ou seja, você pode cancelar processar a mensagem enviada pelo KeyPress , por definição CancelDefault como True , ou, se você estiver usando o método VisEventProc para manipular o evento, retornando True.That is, you can cancel processing the message sent by KeyPress , either by setting CancelDefault to True , or, if you are using the VisEventProc method to handle the event, by returning True. Para obter mais informações, consulte os tópicos para o método VisEventProc e para qualquer um dos eventos de consulta (por exemplo, o evento QueryCancelSuspend ) nesta referência de automação.For more information, see the topics for the VisEventProc method and for any of the query events (for example, the QueryCancelSuspend event) in this Automation Reference.

Observação Pressionar uma aceleração combinação de teclas, por exemplo, CTRL + C, não disparará o evento KeyPress .Note Pressing an accelererator key combination, for example, CTRL + C, does not fire the KeyPress event.

Se estiver usando o Microsoft Visual Basic ou o Visual Basic for Applications (VBA), a sintaxe deste tópico descreverá uma maneira comum e eficiente de lidar com eventos.If you are using Microsoft Visual Basic or Visual Basic for Applications (VBA), the syntax in this topic describes a common, efficient way to handle events.

Se você deseja criar seus próprios objetos de evento , use o método Add ou AddAdvise .If you want to create your own Event objects, use the Add or AddAdvise method. Para criar um objeto Event que execute um complemento, use o método Add como ele se aplica à coleção EventList .To create an Event object that runs an add-on, use the Add method as it applies to the EventList collection. Para criar um objeto Event que recebe uma notificação, use o método AddAdvise .To create an Event object that receives notification, use the AddAdvise method. Para localizar um código de evento para o evento que você deseja criar, consulte códigos de evento.To find an event code for the event you want to create, see Event codes.

ExemploExample

Este módulo de classe mostra como definir uma classe de coletor de eventos chamada como KeyboardListener que escuta de eventos acionados por ações de teclado na janela ativa.This class module shows how to define a sink class called KeyboardListener that listens for events fired by keyboard actions in the active window. Ele declara a variável de objeto vsoWindow usando a palavra-chave WithEvents .It declares the object variable vsoWindow by using the WithEvents keyword. O módulo de classe também contém manipuladores de eventos para os eventos KeyDown , KeyPress e KeyUp .The class module also contains event handlers for the KeyDown , KeyPress , and KeyUp events.

Para executar esse exemplo, insira um novo módulo de classe em seu projeto VBA, nomeie-o como KeyboardListener e insira o seguinte código no módulo.To run this example, insert a new class module in your VBA project, name it KeyboardListener , and insert the following code in the 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

Em seguida, insira o seguinte código no projeto ThisDocument .Then, insert the following code in the ThisDocument project.

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

Salvar o documento para inicializar a classe e, em seguida, pressione qualquer tecla para acionar um evento KeyPress .Save the document to initialize the class, and then press any key to fire a KeyPress event. Na janela Immediate , o manipulador imprime o código ASCII da chave que foi pressionado para acionar o evento.In the Immediate window, the handler prints the ASCII code of the key that was pressed to fire the event.