Событие InvisibleApp.KeyPress (Visio)

Происходит при нажатии клавиши клавиатуры.

Синтаксис

expression. KeyPress (KeyAscii, CancelDefault)

Выражение Переменная, представляющая объект InvisibleApp .

Параметры

Имя Обязательный или необязательный Тип данных Описание
KeyAscii Обязательный Long Значение ASCII нажатой клавиши. Может быть любым символьным кодом ASCII.
CancelDefault Обязательный Boolean False, если Microsoft Visio должен обработать сообщение, полученное от этого события; В противном случае — Значение True.

Замечания

Если для параметра CancelDefault заданозначение True, Visio не будет обрабатывать сообщение, полученное при нажатии кнопки мыши.

В отличие от некоторых других событий Visio, KeyPress не имеет префикса Query, но по-прежнему является событием запроса. То есть можно отменить обработку сообщения, отправляемого KeyPress, задав для cancelDefaultзначение True, или, если для обработки события используется метод VisEventProc , возвращая значение True. Дополнительные сведения см. в разделах о методе VisEventProc и любых событиях запроса (например, о событии QueryCancelSuspend ) в этой ссылке.

Примечание.

Нажатие сочетания клавиш акселератора, например CTRL+C, не приводит к возникновению события KeyPress .

Если вы используете Microsoft Visual Basic или Visual Basic для приложений (VBA), синтаксис в этом разделе описывает распространенный и эффективный способ обработки событий.

Если вы хотите создать собственные объекты Event , используйте метод Add или AddAdvise .

Чтобы создать объект Event , запускающий надстройку, используйте метод Add в том виде, в котором он применяется к коллекции EventList .

Чтобы создать объект Event , получающий уведомление, используйте метод AddAdvise .

Чтобы найти код события, которое требуется создать, см. статью Коды событий.

Пример

В этом модуле класса показано, как определить класс приемника с именем KeyboardListener , который прослушивает события, вызванные действиями клавиатуры в активном окне. Объектная переменная vsoWindow объявляется с помощью ключевого слова WithEvents . Модуль класса также содержит обработчики событий KeyDown, KeyPress и KeyUp .

Чтобы запустить этот пример, вставьте новый модуль класса в проект VBA, назовите его KeyboardListener и вставьте следующий код в модуль.

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

Затем вставьте следующий код в проект 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

Сохраните документ, чтобы инициализировать класс, а затем нажмите любую клавишу, чтобы запустить событие KeyPress . В окне Интерпретация обработчик выводит asCII-код клавиши, нажатой для запуска события.

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.