原帖由douch83于2008-06-25 09:42发表:
顶一下先!在labview中使用事件结构必须将事件结构放在while循环中么?有没有事件发生自动触发或者事件到了自动触发的控件?
事件结构置于循环中是最常用的方式,从WINDOWS编程机制来看过程是这样的
事件发生(如用户按按钮)--->消息入队(WINDOWS有一个消息队列)---->WINDOWS发送到相应窗口,自动调用相应的回调函数.
如果EVENT STRUCTURE不放在循环中,它会一直等待第一个事件,当第一个事件发生后,事件结构就结束了,其它后续事件不会响应了
如果放在循环中,当响应一个事件后,通过循环,再次调用事件结构,等待下一个事件的发生,因此,可以连续响应事件.
在特殊情况下是可以使用不带循环的的事件结构的
比如弹出一个信息对话框,等待用户按OK按钮,这种情况下,就可以使用不带循环的事件结构,因为响应OK按钮后VI就结束了,不需要再次等待事件的发生.
所谓事件发生自动触发,意思应该是如果一个事件发生,自动调用一个回调函数,LV8.0后的版本提供这个功能.
REGISTER CALLBACK 可以注册一个回调函数,这样当某个控件发生事件时,LV会自动调用它
您说的事件到了自动触发控件,我的理解可能是让控件自动产生事件吧,有两个方法
用VALUE(SIGNAL),通过它,可以让控件自动产生VALUE CHANGED事件(只有VALUE CHANGED事件才可以)
用用户事件的方法,我专门写了一篇用户事件的文章,可以参考一下