控制用户输入

AutoCAD ActiveX/VBA

 
控制用户输入
 
 
 

使用 InitializeUserInput 方法可以定义关键字或将输入类型限制为用户输入方法。其使用和参数值类似于 AutoLISP 的 initget 函数。InitializeUserInput 可与以下方法一起使用:GetAngle、GetCorner、GetDistance、GetInteger、GetKeyword、GetOrientation、GetPoint 和 GetReal。InitializeUserInput 不能与 GetString 方法一起使用。当用户输入方法没有返回字符串值时,可以使用 GetInput 方法检索字符串值(关键字或任意输入)。

InitializeUserInput 方法接收两个参数。第一个参数是按位编码的整数值,用于确定用户输入方法的输入选项;第二个参数是定义有效关键字的字符串。

从 AutoCAD 命令行获取用户输入的整数值或关键字

下面的样例提示用户输入正数、非负整数值或关键字:

Sub Ch3_UserInput()
      
    ' InitializeUserInput (6) 的第一个参数
    ' 将输入限制为正数和非负数
    ' 值,第二个参数是有效
    ' 关键字的列表。
    ThisDrawing.Utility.InitializeUserInput 6, "Big Small Regular"
      
    ' 设置提示字符串变量
    Dim promptStr As String
    promptStr = vbCrLf & "Enter the size or (Big/Small/<Regular>):"
      
    ' 在 GetInteger 提示下,输入关键字
    ' 或按 ENTER 键而没有输入值将产生错误。为允许
    ' 应用程序继续并且检查错误
    ' 信息,必须将错误处理程序设置为在错误发生后恢复执行。
    On Error Resume Next
      
    ' 获取用户输入的值
    Dim returnInteger As Integer
    returnInteger = ThisDrawing.Utility.GetInteger(promptStr)
      
    ' 检查错误。如果错误编号与下面显示的
    ' 编号之一匹配,则使用 GetInput 获取返回的
    ' 字符串;否则,使用 returnInteger 的值。
      
    If Err.Number = -2145320928 Then
        Dim returnString As String
        Debug.Print Err.Description
        returnString = ThisDrawing.Utility.GetInput()
        If returnString = "" Then ' 按 ENTER 键返回空字符串
            returnString = "Regular" ' 设置为默认
        End If
        Err.Clear
    Else ' 否则,
        returnString = returnInteger ' 使用输入的值
    End If
      
    ' 显示结果
    MsgBox returnString, , "InitializeUserInput Example"
      
End Sub