It#039;vba函数中的;马特。(它们似乎消失了。)-
- Public Const VK_ESCAPE = &H1B
- Public Const VK_LBUTTON = &H1
- Public Const VK_SPACE = &H20
- Public Const VK_RETURN = &HD
- Public Const VK_LEFT = &H25
- Public Const VK_MBUTTON = &H4
- Public Declare Function GetAsyncKeyState Lib "user32" _
- (ByVal vKey As Long) As Integer
- 'Randall single selection
- Public Function EntSel(Optional strPrmt As String = "Select an entity: ", Optional vPoint As Variant) As AcadEntity
- Dim objTemp As AcadEntity
- Dim objUtil As AcadUtility
- Dim varPnt As Variant
- Dim varCancel As Variant
- On Error GoTo Err_Control
- Set objUtil = ThisDrawing.Utility
- objUtil.GetEntity objTemp, varPnt, vbCr & strPrmt
- Set EntSel = objTemp
- If Not IsMissing(vPoint) Then
- vPoint = ToWcs(varPnt) ',,,,,,,,Added
- End If
- Exit_Here:
- Exit Function
- Err_Control:
- Select Case Err.Number
- Case -2147352567
- 'Debug.Print Err.Number, Err.Description
- varCancel = ThisDrawing.GetVariable("LASTPROMPT")
- If InStr(1, varCancel, "*Cancel*") 0 Then
- If GetAsyncKeyState(VK_ESCAPE) And 8000 > 0 Then
- Err.Clear
- Resume Exit_Here
- ElseIf GetAsyncKeyState(VK_LBUTTON) > 0 Then
- Err.Clear
- Resume
- End If
- Else
- If GetAsyncKeyState(VK_SPACE) Then
- Resume Exit_Here
- End If
- 'Missed the pick, send them back!
- Err.Clear
- Resume
- End If
- Case Else
- MsgBox Err.Description
- Resume Exit_Here
- End Select
- End Function
|