LabVIEW的Framework(3):在GUI程序里使用消息队列
2008-12-02 22:50
337 查看
使用LabVIEW的Framework模板Queued Message Handler新建一个vi,如下图:
这就是一个消息队列处理器。在while循环里的shift register就是用来存放消息的队列,也就是一个字符串数组,其中的每一个字符串就是一条消息。每循环一次,就从消息队列里取出一条消息,然后通过case结构进行处理。需要注意的是,取出消息使用的是Delete From Array,最后放入队列的消息最先得到处理。
现在我们来改造一下这个结构,把它做成一个GUI程序。现在前面板放置三个Button:OK、Apply、Cancel。这个程序我们用来模拟一个设置对话框,这三个按钮是一个设置对话框中标准配置。Apply用来保存设置,OK在保存设置后退出对话框,Cancel则不保存设置直接退出对话框。
在后面板,在No Event这一页中,放入一个Event Structure,然后分别为前面放置三个Button添加Event。注意在OK里添加的两条消息的顺序,原因前面说了。然后,在case结构里再添加Apply Changes和Exit两个分支。
好了,我们的模拟对话框程序就完成了。运行起来,分别点一下那三个Button,看看程序运行的结果。
事情还没完,我们为什么要使用消息呢?其实从这个简单的程序里已经可以看到答案的,那就是代码的重复使用。在OK的处理中,使用了Apply Changes和Exit两条消息,Apply和Exit分别使用了其中一条,这就起到了类似于subVI的作用。为什么不用subVI呢?想一下,如果在消息处理中,涉及到很多界面相关的内容的时候,是不是使用subVI就显得繁琐和困难了很多呢?
这就是一个消息队列处理器。在while循环里的shift register就是用来存放消息的队列,也就是一个字符串数组,其中的每一个字符串就是一条消息。每循环一次,就从消息队列里取出一条消息,然后通过case结构进行处理。需要注意的是,取出消息使用的是Delete From Array,最后放入队列的消息最先得到处理。
现在我们来改造一下这个结构,把它做成一个GUI程序。现在前面板放置三个Button:OK、Apply、Cancel。这个程序我们用来模拟一个设置对话框,这三个按钮是一个设置对话框中标准配置。Apply用来保存设置,OK在保存设置后退出对话框,Cancel则不保存设置直接退出对话框。
在后面板,在No Event这一页中,放入一个Event Structure,然后分别为前面放置三个Button添加Event。注意在OK里添加的两条消息的顺序,原因前面说了。然后,在case结构里再添加Apply Changes和Exit两个分支。
好了,我们的模拟对话框程序就完成了。运行起来,分别点一下那三个Button,看看程序运行的结果。
事情还没完,我们为什么要使用消息呢?其实从这个简单的程序里已经可以看到答案的,那就是代码的重复使用。在OK的处理中,使用了Apply Changes和Exit两条消息,Apply和Exit分别使用了其中一条,这就起到了类似于subVI的作用。为什么不用subVI呢?想一下,如果在消息处理中,涉及到很多界面相关的内容的时候,是不是使用subVI就显得繁琐和困难了很多呢?
相关文章推荐
- 在非GUI程序中使用GUI的类和FrameWork的问题
- C#编写Windows服务程序 (服务端),客户端使用 消息队列 实现淘宝 订单全链路效果
- LabVIEW的Framework(2):GUI程序
- C#编写Windows服务程序 (服务端),client使用 消息队列 实现淘宝 订单全链路效果
- Android 系列 4.11使用活动线程队列和处理程序在线程之间发送消息
- LabVIEW的Framework(4):在GUI程序里传递数据
- LabVIEW的Framework(6):GUI程序框架实例
- GUI程序中使用windows消息实现并行
- 微信小程序开发之formId使用(模板消息)
- 使用消息队列的 10 个理由
- Windows Mobile使用.NET Compact Framework开发多线程程序
- ELK之使用消息队列收取日志
- 使用消息队列发布微博
- android开发教程之使用looper处理消息队列
- Linux进程间通信——使用消息队列
- Linux进程间通信——使用消息队列
- 使用C#和MSMQ开发消息处理程序
- 将QT开发的界面程序封装成DLL,在VC中成功调用(必须有消息循环,所以使用了QTWinmigrate,附CSDN可下载的Demo)
- 使用Redis构建消息队列和发布订阅系统
- JBoss 系列六:JBoss 7/WildFly中配置使用JMS消息队列