020 发表于 2007-10-9 13:51:22

ACAD应用程序事件

在我的Acad.dvb文件中。
我有一个类模块:
Dim AppEvents As New AppEvents Class
-

Sub acadstartup()
Set AppEvents.ACADApp = Application
End Sub

和模块:
Option Explicit
Public WithEvents ACADApp As AcadApplication    'Use with Application Event Examples

-
Private Sub ACADApp_AppActivate()
' I want this code to work on startup
End Sub

但是,我注意到应用程序级事件仍然没有触发
有人能告诉我为什么会发生这种情况吗?谢谢你马克
**** Hidden Message *****

粽子 发表于 2007-10-9 13:52:28

启动时你想做什么?

微笑 发表于 2007-10-9 14:19:58

我不得不把我的事件放在这个绘图模块中。BRB
编辑:添加了代码
我必须为此称赞其他人,但在我的脑海中,我不记得是谁帮助了我。也许是Bryco??无论如何,我一会儿就去看看。这是他们给我的,用于修复end open
Option Explicit
Public WithEvents AutoCAD As AcadApplication
Sub App_StartMacro()
      Set AutoCAD = ThisDrawing.Application
End Sub
Private Sub AcadDocument_BeginCommand(ByVal CommandName As String)
      If CommandName = "COMMANDLINE" Then
            Set AutoCAD = ThisDrawing.Application
      End If
End Sub
Private Sub AutoCAD_EndOpen(ByVal FileName As String)
      ThisDrawing.SetVariable "INSUNITS", 1
      ThisDrawing.SetVariable "OSNAPZ", 1
      ThisDrawing.SetVariable "LAYEREVAL", 0
      ThisDrawing.SetVariable "LAYERNOTIFY", 0
      Dim strUser As String
      strUser = UCase(Environ("USERNAME"))
      Select Case strUser
      Case "UA02038"
      Case "UA03347"
      Case Else
            ThisDrawing.SendCommand "undefine" & vbCr & "BEDIT" & vbCr
      End Select
End Sub
Public Sub AcadStartup()
      Dim Preferences As AcadPreferences, intOsmode As Integer
      Set Preferences = ThisDrawing.Application.Preferences
      Dim strUser As String
      strUser = UCase(Environ("USERNAME"))
      Select Case strUser
      Case "UA02038"
            Preferences.Selection.PickFirst = True
            intOsmode = 71
            ThisDrawing.SetVariable "ORTHOMODE", 1
      Case "UA03347"
            Preferences.Selection.PickFirst = True
            intOsmode = 19
      Case Else
            Preferences.Selection.PickFirst = True
            intOsmode = 7
      End Select
      If intOsmode = 0 Then
            ThisDrawing.SetVariable "osmode", 3
      Else
            ThisDrawing.SetVariable "osmode", intOsmode
      End If
      Application.Preferences.Output.AutomaticPlotLog = False
      Application.Preferences.User.ADCInsertUnitsDefaultSource = acInsertUnitsInches
      Application.Preferences.User.ADCInsertUnitsDefaultTarget = acInsertUnitsInches
      ThisDrawing.SetVariable "OSNAPZ", 1
End Sub
End open的应用程序级别事件,但在这些调整之后,它是可用的

诛仙图片 发表于 2007-10-9 14:23:03

是Bryco在这里
页: [1]
查看完整版本: ACAD应用程序事件