(1)在“工具箱”中的空白区域单击右键,从弹出的菜单中选择“附加控件”菜单项。
(2)在“附加控件”对话框中,引用“AcFocusCtrl”控件,单击“确定”按钮关闭该对话框。
(3)将添加的“AcFocusCtrl”控件放置在要作为非模态使用的窗体中,并在窗体的初始化事件中添加:Me.AcFocusCtrl1.KeepFocus = True
(4)在ThisDrawing模块中添加下面的语句:
Sub Test()
UserForm1.Show vbModeless
End Sub
(5)运行Test宏,就能观察一下非模态对话框的运行结果。
Private Const VK_ESCAPE = &H1B ' 代表Esc键
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
' 功能:判断用户是否按下某一个键
' 输入:代表键的常量(从API Viewer中获得)
' 调用:API函数GetAsyncKeyState
' 返回:如果用户按下了指定的键,返回True;否则返回False
' 示例:
' If CheckKey(&H1B) = True Then do sth
Private Function CheckKey(lngKey As Long) As Boolean
If GetAsyncKeyState(lngKey) Then
CheckKey = True
Else
CheckKey = False
End If
End Function
Sub Test()
Dim objSelect As AcadEntity
Dim basePnt As Variant
' 选择对象并判断类型
On Error Resume Next