求助:鼠标滚轮放大缩小图片
我想实现用鼠标滚轮放大或者缩小图片的功能或者说用滚轮控制滑动杆,特发帖求助,感谢万分。
我见过labview example里面有放大图片,你再将鼠标检测这一个加上就可以实现 另外提醒,你在鼠标滚轮事件里加个区域判断,确保鼠标放到图片上面的时候才有此特性 回复 3# 飞雨天 的帖子
多谢指点,但还有点不懂,不知道鼠标滚轮事件怎么弄,望指教。 回复 2# Obama 的帖子
还是有点不懂,如何检测鼠标滚轮事件,望指教
,多谢。 鼠标滚轮检测我很自以为是有的,结果从7.1找到2009都没有发现,NI也太迟钝了~~以下是比较无奈的方案:
有如此两个vi来帮助实现,路径function palette-->advanced-->input device control,这里面有6个vi,你需要用到第3、5、6个。基本原理就是acquire input data这个vi的axis info输出最后一个元素可以用来标志鼠标滚轮动作的。没有动作的时候输出为0,有动作就输出一个值,正值代表前滚,负值后滚。为120倍数。
然后我的意思你把这个检测放到事件结构的timeout中,把timeout改造为mouse wheel事件。如果按我3楼说的那样,做个滤除的话,还需要一对mouse enter/leave,最好另外做一个user event,当符合条件的时候(鼠标在图片区域)在timeout里检测到mouse wheel然后在generate你的user event,最后把图片处理程序放到user event框中 回复 6# 飞雨天 的帖子
大概是不是这样:
但是鼠标滚动停止后又回到0,滑动杆也随之变为0.能否当滚轮向前滚动滑动杆值增加,向后滚动值减小呢。
本帖最后由 飞雨天 于 2010-5-24 13:46 编辑
当然可以,你用shift register存储历史数据,然后稍微做下运算。
另外,你的程序错误很多,首先,打开和关闭之类的函数不必放循环里,外面即可;
第二,stop单独做一个事件,不然你的程序无法停止(或者增加一个timeout,但不如把stop单独做事件来得好)
第三,事件结构里放置的都是耗时短的程序,很少看见延时vi的,你可以把延时放timeout里做
回复 8# 飞雨天 的帖子
尴尬了,我的版本是8.6的,打不开你的程序啊,麻烦截个图片过来,多谢指点。
我是个新手,多谢指出我的错误。
8.6.......
本帖最后由 玉米罐头 于 2010-5-24 23:42 编辑
回复 10# 飞雨天 的帖子
非常感谢版主,向你学习。
页:
[1]