使用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两个分支。
这就是一个消息队列处理器。在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两个分支。