您的位置 首页 IC

事情结构—–鼠标音讯的次第,音讯链的停止和转发

对于前面板和前面板上的控件,如果鼠标左键点击面板上的一个控件,控件肯定会发生mousedown事件,那么由于控件是位于面板上的,面板是否会发

关于前面板和前面板上的控件,假如鼠标左键点击面板上的一个控件,控件肯定会发生mouse down事情,那么由于控件是坐落面板上的,面板是否会发生mouse down事情那?假如发生mouse down事情,那么这个两个事情的先后次第怎么?依据WINDOWS窗口进程处理来看,任何音讯应该是主窗口先得到一切音讯,然后派发到它上面的各个控件.LABVIEW是否也是这样处理的那?做个试验看一下.

看得出,面板先发生mouse down 然后图片控件才发生mouse down事情,验证上面的想象.

有的鼠标事情是接连发生的,比方mouse move事情,那mouse down ,mouse up,mouse enter,mouse leave是否是接连发生的事情吗?比方我的鼠标一向按下,那mouse down不断地发生吗?由于接连发生的事情极大地占用了系统资源,所以编程时要尽量防止.

咱们看测验程序

测验成果:

能够得出结论:除了mouse move是接连发生事情之外,其它的都不是接连发生了.

下面的问题是:

已然任何针对控件的音讯都是经过PANEL接纳并转发的,那么咱们能否截取这个音讯,中止音讯的传送或许重定向,比方本来是按钮A发生事情,咱们人为地使按钮B发生事情那,咱们研究一下.(VC中称为钩子)

仔细看上图,事情有的是有?有的没有,有?的表明该事情能够进行相应处理,来决议音讯是否持续或许怎么持续.

仍是用上面的比方,咱们先来增加PANEL的mouse down事情,并制止它持续传送,那么P%&&&&&%TURE BOX还能发生呼应鼠标按下的

事情吗?

从上图能够清楚地看到,当鼠标点击picture box时分,发生的是pane的mouse down?事情,无论是是pane仍是上面的控件包含STOP按钮都不再发生mouse down事情,一起,其它的鼠标事情 mouse enter ,mouse leave都不受影响.

赤色箭头处,咱们给定常量TRUE,表明后边将疏忽这个mouse down音讯.

这样咱们就做到了截取并停止音讯的传送.

这个方法有很重要的用处,比方咱们在测验或许操控中,制止操作者用鼠标对画面进行操作,有三种方法

用API函数全面制止,包含其他程序,躲藏或这发灰需求制止的按钮(假如多了,就不实际了),而在程序本身制止是比较适宜的.上面的比方就全面制止了对鼠标按下的呼应,处理了这个问题.

能否重定向音讯那,右面只要四个可用的挑选:

DISARD:TRUE-->中止音讯传送,FALSE-->持续.其它三个都是和键有关的,所以没有好的方法.

有一个折中的方法:关于每一个控件都有两个特点value 和value(signal),这两个特点的区别是当给Value(signal)一个值时,将发生value change事情,没有方法直接其它音讯的重定向.

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/211399.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部