公共活动等等......
有人有在VBA编写新事件程序的经验吗?我正在考虑为特定需求定义一些自定义事件,但我承认我在VBA的这方面有些困难....具体来说,将事件附加到定义事件如何确定何时触发以及应该发送什么值的对象....
我还需要它是透明的,比如一个新类....
**** Hidden Message ***** 听起来很有趣,基思
我是否正确解释了这一点,即您希望设置一个事件过程来执行,例如,您在图形中选择了一个特定的实体
然后您的程序将测试信息,然后执行一些操作
选择一个块并将其移动到新位置,然后您的程序会将更新的插入坐标点发送到数据库或类似的东西
如果是这样,则属于begincommand事件<或者我是不是有点过于简单了? 你说对了一部分。
请记住,目前在VBA举办的活动是基于用户互动的典型绘画活动。我想做的是实现一个“OnPaint”事件,这样每当AutoCAD窗口被重画(无论是平移,再生,重画,再生自动等...)这可能会触发一个事件。
目前,您只能监视图形和图形窗口的事件,而不能监视应用程序级事件。
这将是一个更加深入的实现,允许对AutoCAD对象进行更多的控制,例如“OnMouseOver”事件,它允许您在帮助提示窗口中显示作为扩展数据存储的相关信息,就像当您悬停在工具栏按钮上时一样。通过这种方式,你可以附上注释,获取潜在的信息,而不必列出项目。我甚至可以设想一点代码,向用户显示某些请求的信息,或者通过将鼠标悬停在对象上来浏览实体列表的选项。
我可以用已经存在的事件来实现其中的几个,但问题是这些事件中有许多在事件被触发时控制了绘图。这可以防止在特定事件运行时进一步监视该事件。
这有意义吗? 是的
我确信我看到了一些东西,可以在屏幕上定位光标位置,然后可以用来定位实体<嗯,狩猎时间到了。我会回来的 好的,这是我到目前为止发现的。
要定位当前鼠标位置
请查看Tony Tanzillo的AcadX.arx中的InputPointMonitor类:
http://www.caddzone.com
不幸的是,我无法使用该链接,因此可能他们的服务器目前已关闭。
不过,以下内容可能更好。
我发现的另一件事是,您可以使用user32.dll
函数名称来定位鼠标位置:GetCursorPos
返回:布尔
参数:ref mousepos mousepos2
还可以查看此链接,使用多行文本和气球形状创建自定义工具提示。这是VB6,但会让你很好地了解它是如何完成的
http://www.andreavb.com/tip050007.html
这是另一个方便的
http://www.vbcity.com/forums/faq.asp?fid=38&cat=Mouse
它应该会让你看一会儿 我喜欢.....
好,还有一件事.....
我有一个程序,我想在多行文字对话框显示后运行,实际上是在它还在屏幕上的时候...在幕后....但是在对话关闭之前....有点像在多行文字编辑器窗口关闭之前获取它的内容...如果我使用BeginCommand事件,该事件会在绘制对话框之前触发,如果我使用EndCommand事件,则会在对话框关闭之后绘制....我知道类可以独立于命令调用运行,但我想在对话框绘制完成后关闭前运行它.... 嗯,那要困难得多。
我将不得不投资一个更大的思考帽
我猜我会说绝对走VB路线而不是VBA。VBA可能不会为此而削减它。
至少对于VB,它是在外部运行的,所以也许您可以调用一个命令并基本上暂停用户输入或在继续执行命令之前做任何您想做的事情。
可能需要一些搜索。 计时器事件呢?我们以前做过计时器,它看起来工作正常...如果我创建一个计时器事件,将其设置为1秒后执行,然后在EndCommand上关闭计时器......你认为这会起作用吗???
此外,我已经能够枚举MTextEditor对话框中的控件,但我找不到文本窗口。我需要一点帮助来找到它...你不会碰巧知道如何抓取它吧?我翻阅所有的HWND对象并找到它们(我想),但我无法“猜测”哪个是文本窗口(因为我不知道它到底是什么样的控件,如果它确实是一个控件的话) 嘿,计时器可能只是工作,我没有想到这一点。
我还没有尝试过枚举任何现有对话框的控件之类的操作。我想文本窗口应该是一个控件,有点像格式化为备忘录的文本框。现在我想的一件事是早些时候更改背景颜色的未实现帖子,从我能或应该说找不到的东西来看,它无法完成(如您所知,颜色与acad屏幕颜色相同。那么,我要把这件事情引向何方呢?嗯
,也许它被以不同的方式控制,我不知道。你可能会在这里开辟新的天地基思。 嗯,这对我来说的确是一个新领域....我试图通过使用VBA,甚至改变窗口的属性来磨练我操作不同窗口和窗口特性的技能。我还希望能够添加控件和/或删除或禁用控件,以便管理员可以进一步定制AutoCAD,以满足他们的需求。例如,我记得不久前有人出于某种原因想要禁用某个特定的控件...我可以通过黑掉对话框资源来做到这一点,但是并不是每个人都可以使用这个选项,而且这是一个非常繁琐的操作。
在写这篇文章的时候,我有很多新的想法浮现在脑海中...
页:
[1]
2