Visio) (Windows.KeyPress 事件

Visio)  (Windows.KeyPress 事件

按键盘键时,发生此事件。

语法

表达式。KeyPress (KeyAscii、 CancelDefault)

表达式 表示 Windows 对象的变量。

参数

名称

必需/可选

数据类型

说明

KeyAscii

必需

Long

按下的键的 ASCII 值。 可以是任何 ASCII 字符代码。

CancelDefault

必需

Boolean

如果 Microsoft Visio 应处理从此事件接收的消息,则为 False;否则为 True。

备注

如果将 CancelDefault 设置为 True,Visio 将不对单击鼠标键时收到的消息进行处理。

与其他一些 Visio 事件不同, KeyPress 没有前缀 查询,但它仍是一个查询事件。 也就是说,可以通过将 CancelDefault 设置为 True,或者,如果使用 VisEventProc 方法处理事件,则通过返回 True 来取消处理 KeyPress 发送的消息。 有关详细信息,请参阅本参考中针对 VisEventProc 方法和针对任何查询事件(例如,QueryCancelSuspend 事件)的主题。

注意

按快捷键组合(例如 Ctrl+C)不会触发 KeyPress 事件。

如果您使用 Microsoft Visual Basic 或 Visual Basic for Applications (VBA),则此主题中的语法描述的是一种通用而有效的事件处理方法。

如果要创建自己的 Event 对象,请使用 Add 或 AddAdvise 方法。

若要创建可运行加载项的 Event 对象,请使用 Add 方法,因为它适用于 EventList 集合。

若要创建可接收通知的 Event 对象,请使用 AddAdvise 方法。

若要查找要创建的事件的事件代码,请参阅事件代码。

示例

此类模块示范如何定义名为 KeyboardListener 的接收类,它侦听由活动窗口中的键盘操作触发的事件。 它通过使用 WithEvents 关键字来声明对象变量 vsoWindow。 该类模块还包含 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。

相关文章

丰田“大魔王”售价仅4.99万美元起,第五代Supra上线!
365bet亚洲最大网投

丰田“大魔王”售价仅4.99万美元起,第五代Supra上线!

📅 01-25 👁️ 5849
博瑞怎么样_博瑞值得买吗
office365打不开doc文件

博瑞怎么样_博瑞值得买吗

📅 10-14 👁️ 3235