河南人 发表于 2007-10-24 14:18:25


我不'我不认为这会起作用:语法有道理,但我不'我不知道你会怎么触发它If SendKeys = "{F8}"
Then Application.VBE.MainWindow.Visible = False
End If

青岛人 发表于 2007-10-24 14:20:08


我刚刚回答了你在CM上面的问题,那就是ACAD如何知道你点击F8,如何在你需要的特定事件中触发它,我不确定

黄花鱼 发表于 2007-10-24 14:45:40

ML,I'我不确定你'我正确地得到了他想要的 何#039;s正在谈论使用F8在VBAIDE中一次一行地遍历代码 当acad中需要输入时,例如选择,他希望焦点切换到acad窗口 如果使用Application.VBE.MainWindow。Visible=False在遍历代码时,它只会在到达下一行代码所需的瞬间关闭IDE 我尝试了旧的awesomey acad示例事件代码dvb,以查看选择是否触发了任何事件,并且它没有't似乎;我使用了下面的代码 当宽度更改但'这是唯一让我兴奋的事件
'      AutoCAD 2000
'
'      Events Example Code ActiveX Automation.
'
'      Copyright (C) 1999 by Autodesk, Inc.
'
'      Permission to use, copy, modify, and distribute this software
'      for any purpose and without fee is hereby granted, provided
'      that the above copyright notice appears in all copies and
'      that both that copyright notice and the limited warranty and
'      restricted rights notice below appear in all supporting
'      documentation.
'
'      AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
'      AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
'      MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE.AUTODESK, INC.
'      DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
'      UNINTERRUPTED OR ERROR FREE.
'
'      Use, duplication, or disclosure by the U.S. Government is subject to
'      restrictions set forth in FAR 52.227-19 (Commercial Computer
'      Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
'      (Rights in Technical Data and Computer Software), as applicable.
'
Option Explicit
Public WithEvents PLine As AcadLWPolyline       ' Use with Modified Event Example
Public WithEvents ACADApp As AcadApplication    ' Use with Application Event Examples
'------------------------------------------------------------------
' Document Events
'------------------------------------------------------------------
Private Sub AcadDocument_Activate()
    ' This example intercepts a drawing Activate event.
    '
    ' This event is triggered when a drawing window becomes active.
    '
    ' To trigger this example event: Either open a new drawing or switch from
    ' one drawing window to another
    MsgBox "You have just activated a drawing!"
End Sub
Private Sub AcadDocument_BeginClose()
    ' This example intercepts a drawing BeginClose event.
    '
    ' This event is triggered when a drawing receives a request to close.
    '
    ' To trigger this example event: Close an open drawing
    MsgBox "A drawing has just been closed!"
End Sub
Private Sub AcadDocument_BeginCommand(ByVal CommandName As String)
    ' This example intercepts a drawing BeginCommand event.
    '
    ' This event is triggered when a drawing receives
    ' any command compatible with this event.
    '
    ' To trigger this example event: Issue any command to an open drawing from
    ' either the command line, VBA, the ACAD menus, the ACAD toolbars, or LISP.
    ' Use the "CommandName" variable to determine which command was started
    MsgBox "A drawing has just been issued a " & CommandName & " command."
End Sub

'----------------------------------------------------------------------------
' Modified (PLINE) Event Sample
'----------------------------------------------------------------------------
Sub Example_Modified()
   ' This example creates a light weight polyline in model space and
   ' references the new PolyLine using the public variable (PLine) which
   ' is setup to intercept Modified events.
   '
   ' This example then modifies the new object, triggering the code
   ' in the Modified event.
   
    Dim points(0 To 9) As Double
   
    ' Define the 2D polyline points
    points(0) = 1: points(1) = 1
    points(2) = 1: points(3) = 2
    points(4) = 2: points(5) = 2
    points(6) = 3: points(7) = 2
    points(8) = 4: points(9) = 4
      
    ' Create a light weight Polyline object in model space
    '
    ' * Note: We are returning the new PolyLine object into a Module
    ' level variable.This allows us to intercept events associated
    ' with that particular object.
    Set PLine = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
   
    ThisDrawing.Application.ZoomAll
   
    ' Modify object to trigger event.
    '
    ' * Note: The event code for the PolyLine modification will be triggered
    ' before we move forward and refresh the view, so the line will not
    ' appear red when the event message box is displayed
    PLine.color = acRed
    ThisDrawing.Regen acAllViewports
   
End Sub
Private Sub PLine_Modified(ByVal pObject As AutoCAD.IAcadObject)
    ' This example intercepts an object's Modified event.
    '
    ' This event is triggered when an object supporting this event is modified
    '
    ' To trigger this code: Modifiy an object connected to this event
    ' * Note: By connected, we mean the object setup to intercept events using
    ' the VBA WithEvents statement
    ' Use the "pObject" variable to determine which object was modified
    MsgBox "You just modified an object with an ID of: " & pObject.ObjectID
   
End Sub
Sub test()
Dim objPL As AcadLWPolyline
Dim varPnt As Variant
ThisDrawing.Utility.GetEntity objPL, varPnt
objPL.ConstantWidth = 1
End Sub

大海 发表于 2007-10-24 14:58:22


嗨,鲍勃,我确实明白他想要什么,但我不知道怎么去;“我只是在抓吸管,”CM说,“ACAD怎么知道我什么时候按F8?”?我刚才说了怎么做
If SendKeys = "{F8}"
'whatever code you want
End If
我也说过我不'我不知道他需要什么
哦,好吧,我们可以'不要什么都有,对吗
页: 1 [2]
查看完整版本: Autocad。激活或Autocad。设置焦点