大家好...我在ADesk VB / VBA论坛上尝试了一下,没有人回应....
我有一个VBA例程,可以很好地与AcadDocument_EndCommand事件配合使用,但是我在尝试将其转换为VB6时遇到问题。我已经阅读了我能找到的所有内容,但仍然无法使其正常工作。事件例程不会触发。
我创建了一个类模块,声明了一个WithEvents AcadDocument,初始化了该类,并在我的程序中放置了一个子,以将我的文档与ThisDrawing连接起来。我像这样创建了ThisDrawing:
- **Class Module**
- Public WithEvents Doc as AcadDocument
- Private Sub Class_Initialize()
- Set Doc=Application.ActiveDocument
- End Sub
- Private Sub Doc_EndCommand(ByVal CommandName as String)
- Select Case CommandName
- --------- do stuff -------
- End Select
- End Sub
- **Main Sub**
- Option Explicit
- Dim X as New EventClassModule
- Public Application as AcadApplication
- Public ThisDrawing as AcadDocument
- Sub Main()
- Call InitializeEvents
- End Sub
- Sub InitializeEvents()
- On Error Resume Next
- Set Application=GetObject(, "AutoCAD.Application")
- If Err.Number0 Then
- Err. Clear
- MsgBox "Start AutoCAD, dummy!"
- End
- End If
- Set ThisDrawing=Application.ActiveDocument
- Set X.doc=ThisDrawing
- End Sub
ThisDrawing具有适当的属性,并且Doc正确显示了类模块中的事件,但是当我在AutoCAD中结束命令(使用2007)时没有任何反应,尽管它确实可以正常工作VBA版本。缺少了什么?
本帖以下内容被隐藏保护;需要你回复后,才能看到! 游客,如果您要查看本帖隐藏内容请 回复 |