MouseEvent.KeyButtonState 属性 (Visio)
返回与鼠标事件关联的鼠标按钮以及 SHIFT 和 Ctrl 键的状态。 此为只读属性。
语法
expression。 KeyButtonState
表达 一个代表 MouseEvent 对象的变量。
返回值
Long
备注
KeyButtonState 的可能值可以是下表中显示的任何值的组合,这些值在 Visio 类型库中的 VisKeyButtonFlags 中声明。 例如,如果 KeyButtonState 返回 9,则表示用户在按 Ctrl 时单击了鼠标左键。
常量 | 值 |
---|---|
visKeyControl | 8 |
visKeyShift | 4 |
visMouseLeft | 1 |
visMouseMiddle | 16 |
visMouseRight | 2 |
示例
此类模块说明如何定义名为 MouseListener 的接收类,该类将侦听活动窗口中由鼠标操作触发的事件。 它通过使用 WithEvents 关键字来声明对象变量 vsoWindow。 类模块还包含 MouseDown 事件的事件处理程序,该事件处理程序在触发事件时将鼠标按钮的状态以及 CTRL 和 SHIFT 键的状态输出到“即时”窗口。
若要运行此示例,请在 VBA 项目中插入一个新类模块,将其命名为 MouseListener,并在模块中插入以下代码。
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_MouseDown(ByVal Button As Long, ByVal KeyButtonState As Long, ByVal x As Double, ByVal y As Double, CancelDefault As Boolean)
Debug.Print "KeyButtonState is"; KeyButtonState
End Sub
然后,在 ThisDocument 项目中插入以下代码。
Dim myMouseListener As MouseListener
Private Sub Document_DocumentSaved(ByVal doc As IVDocument)
Set myMouseListener = New MouseListener
End Sub
Private Sub Document_BeforeDocumentClose(ByVal doc As IVDocument)
Set myMouseListener = Nothing
End Sub
保存文档以初始化类,然后根据需要单击活动窗口中的任意位置 (,同时按 Shift 和/或 CTRL) 以触发 MouseDown 事件。 在“立即”窗口中,处理程序会打印触发该事件时单击的鼠标按钮的名称。 如果您按下了 Shift 和/或 Ctrl,则还会打印按下的键的名称。
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。