在 VBA 中编写文档层事件代码

AutoCAD ActiveX/VBA

 
在 VBA 中编写文档层事件代码
 
 
 

加载 VBA 工程时,自动启用文档层事件。要在 VBA 中编写文档层事件的事件处理程序,只需从“代码”窗口的“对象”下拉列表中选择“AcadDocument”。文档的可用事件将显示在“过程”下拉列表中。只需选择要为之编写处理程序的事件,便会自动创建该处理程序的框架。

注意,以这种方式创建的事件处理程序适用于当前的活动图形。要为特定图形创建事件处理程序,请先执行在非 VBA 环境中启用文档层事件中的步骤。这使用户可以为特定文档启用事件。

下例使用 BeginShortcutMenuDefault 事件的事件处理程序将“OpenDWG”菜单项添加到快捷菜单的开头。然后,EndShortcutMenu 事件的事件处理程序将删除附加的菜单项,以使其不会被永久保存在用户的菜单配置中。

Private Sub AcadDocument_BeginShortcutMenuDefault _
                    (ShortcutMenu As AutoCAD.IAcadPopupMenu)
    On Error Resume Next
    ' 向光标菜单中添加菜单项
    Dim newMenuItem As AcadPopupMenuItem
    Dim openMacro As String
    openMacro = Chr(vbKeyEscape) + Chr(vbKeyEscape) + "_open "
    Set newMenuItem = ShortcutMenu.AddMenuItem _
                                    (0, Chr(Asc("&")) _
                                     + "OpenDWG", openMacro)
End Sub
    
Private Sub AcadDocument_EndShortcutMenu _
                   (ShortcutMenu As AutoCAD.IAcadPopupMenu)
    On Error Resume Next
    ShortcutMenu.Item("OpenDWG").Delete
End Sub