明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5656|回复: 9

请问在AUTOCAD环境中如何判断按键是“ESC”?

[复制链接]
发表于 2008-10-9 14:43 | 显示全部楼层 |阅读模式

我在AUTOCAD中按下“ESC”在命令提示中会显示“*取消*”

我想在按下“ESC”时运行宏命令,请问怎样捕获按下“ESC”的事件?

 楼主| 发表于 2008-10-11 20:29 | 显示全部楼层

 本版的人气不旺啊!

难道我问的问题太简单了吗?

发表于 2008-10-13 16:50 | 显示全部楼层

Public Const VK_ESCAPE = &H1B      ' 代表Esc键
Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

' 功能:判断用户是否按下某一个键
Public Function CheckKey(lngKey As Long) As Boolean
  If GetAsyncKeyState(lngKey) Then
    CheckKey = True
  Else
    CheckKey = False
  End If
End Function

 楼主| 发表于 2008-10-13 20:51 | 显示全部楼层

首先表示感谢hbyu2003

可我不是想问在运行getpoint等命令时的按ESC的出错处理,

而是想知道在autocad环境中如何能捕获到按下Esc事件,

比如在cad中,没做任何操作的情况下,按下Esc,如果捕获到,就可以处理相应的程序!

发表于 2008-10-13 20:54 | 显示全部楼层
AutoCAD并没有捕获按钮运作的触发机制。
发表于 2009-8-14 08:03 | 显示全部楼层
挺好,感谢!
发表于 2009-8-14 23:45 | 显示全部楼层

写个随windows自启动的程序常驻内存,监视在CAD打开的情况下是否有按了esc键,如果有则让CAD启动你的宏命令。

发表于 2010-6-8 14:46 | 显示全部楼层
能不能在VBA执行的任何位置按下ESC键就可以取消VBA程序的运行呢,谢谢指教。
发表于 2010-6-20 21:06 | 显示全部楼层
读取系统变量"erron",根据返回值可以知道是否按了ESC键或别的什么键.
好像返回7就是按了ESC键,详细对应值参看开发人员标准吧.里面有详细列表,不过是E文的.
发表于 2010-6-22 23:36 | 显示全部楼层
yxh1202发表于2010-6-8 14:46:00能不能在VBA执行的任何位置按下ESC键就可以取消VBA程序的运行呢,谢谢指教。

可以在对应的控件的keypress事件中写代码,用ASCII码来判断,如下所示

 

Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
  If KeyAscii = 27 Then
    End
  End If
End Sub

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-5 00:26 , Processed in 0.280882 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表