起子 发表于 2011-5-19 13:42:47

窗口缩放或移动后,哪个对象变化了?

如题,窗口缩放或移动后,哪个对象变化了?
想用LISP写个窗口变化,比如拖动或者缩放后的反应器,但是查了一通,没发现有对应接口。
想过几个方式,比如监视系统变量反应器、VIEWPORT对象反应器,都不行。

caoyin 发表于 2011-5-19 14:44:34

直接监视命令ZOOM,PAN不就行了吗

caoyin 发表于 2011-5-19 14:44:36

直接监视命令ZOOM,PAN不就行了吗

起子 发表于 2011-5-19 23:26:34

caoyin 发表于 2011-5-19 14:44 static/image/common/back.gif
直接监视命令ZOOM,PAN不就行了吗

鼠标中键拖动和缩放,不是调用pan和zoom的。
还有Cad程序窗口变化后引起视区变化,也是不能通过监视命令触发的。

highflybird 发表于 2011-5-20 08:41:36

回复 起子 的帖子

这个的确是可以用API 做钩子做到的。

起子 发表于 2011-5-20 12:00:01

highflybird 发表于 2011-5-20 08:41 static/image/common/back.gif
回复 起子 的帖子

这个的确是可以用API 做钩子做到的。

可以说得详细些吗?
你那篇API的帖子昨天晚上才看到,下半年好好研究下。

highflybird 发表于 2011-5-20 12:34:26

回复 起子 的帖子

VIEWSIZE 和VIEWCTR这两个系统变量控制不行么?

起子 发表于 2011-5-20 23:54:03

回复 highflybird 的帖子

Lisp自带的系统变量反应器对只读的系统变量不反应的。

highflybird 发表于 2011-5-21 00:08:29

本帖最后由 highflybird 于 2011-5-21 00:11 编辑

回复 起子 的帖子

这个我真的还不知道。不过用VBA+API很容易实现鼠标或者窗口监控的。
至于VLISP+API 我还没尝试过。感觉应该可以。
如果简单一点的话,就设置定时器,每隔一段比较短的时间就去检查viewsize 和viewctr,这样不知道可不可以?

起子 发表于 2011-5-21 13:25:49

本帖最后由 起子 于 2011-5-21 15:29 编辑

回复 highflybird 的帖子

这也是个方法,不过要看时间间隔设成多少合适,时间间隔太短了会不会对效率有太大的影响。
刚刚试了下,还是不能直接使用。
利用nons提供的自动保存的定时思路不行,支持的最短时间间隔是1分钟,要检测窗口变化,起码要0.5秒左右的间隔才行。

现在打算用时间控件做,但是有个问题,就是LISP中,如何调用ACTIVEX对象的事件。
本版下了xtimers.dll时间控件,提供了一个tick事件,但是不清楚LISP中如何调用这个事件。

通过API的方法只有下半年研究下看看了,完全没接触过,要是老大有空能写下例子学习下就好了。
页: [1] 2
查看完整版本: 窗口缩放或移动后,哪个对象变化了?