動(dòng)態(tài)注冊用戶接口事件
發(fā)布時(shí)間:2014/6/19 20:55:36 訪問次數(shù):437
處理動(dòng)態(tài)注冊事件一般需要以下4個(gè)步驟:
(1)取得生成事件MBR3090PT的那個(gè)對(duì)象的VI Server引用。
(2)連接VI Server引用到注冊事件節(jié)點(diǎn)進(jìn)行對(duì)象的事件注冊。
(3)將事件結(jié)構(gòu)放在一個(gè)While循環(huán)中處理事件。
(4)用取消事件注冊函數(shù)停止事件發(fā)生。
下面通過一個(gè)LabVIEW自帶的例子Dynamically Register for Events介紹以上的過程和一些事件函數(shù)的用法。本書對(duì)這個(gè)例子稍微做一下修改,并重命名為“動(dòng)態(tài)注冊事件”。圖2-18是這個(gè)程序的前面板。
運(yùn)行這個(gè)程序后,如果在前面板的撲克牌圖片上單擊,并按住鼠標(biāo)左鍵,就可以拖動(dòng)撲克牌移動(dòng),同時(shí)可以看到循環(huán)數(shù)在增加;在前面板其他位置無論鼠標(biāo)怎樣移動(dòng),循環(huán)數(shù)都不變,說明程序在等待事件發(fā)生。要實(shí)現(xiàn)這種效果,顯然要對(duì)事件注冊隨時(shí)修改,即鼠標(biāo)在撲克牌上按下時(shí)注冊一個(gè)事件,釋放時(shí)注冊另一個(gè)事件。
圖2-19是上述程序的框圖。“當(dāng)前VI路徑”函數(shù)為“打開VI引用”函數(shù)輸入“VI路徑”參數(shù)。“打開VI引用”函數(shù)打開當(dāng)前VI的引用。后面兩個(gè)屬性節(jié)點(diǎn)先返回當(dāng)前VI前面板引用句柄,再通過這個(gè)引用句柄返回前面板控件引用句柄。
“注冊事件”節(jié)點(diǎn)的用法和屬性節(jié)點(diǎn)類似,這里設(shè)置了3個(gè)事件端口。“鼠標(biāo)移動(dòng)”事件連接了一個(gè)VI引用句柄常數(shù)。這個(gè)常數(shù)可以由前面板把VI引用句柄控件拖到程序框圖中產(chǎn)生。在這里只是定義一個(gè)事件類型,并沒有實(shí)際注冊事件。另外LabVIEW 8.2不再支持事件源為通用VI引用的鼠標(biāo)移動(dòng)這個(gè)事件,這里由于我們只想說明動(dòng)態(tài)注冊事件,所以直接將例子復(fù)制過來,未做修改!笆髽(biāo)按下”和“鼠標(biāo)釋放”事件連接了Picture控件引用句柄,所以注冊了兩個(gè)關(guān)于鼠標(biāo)在撲克牌上動(dòng)作的事件。除非是修改事件注珊,“事件注冊引用句柄”參數(shù)不必連接。
處理動(dòng)態(tài)注冊事件一般需要以下4個(gè)步驟:
(1)取得生成事件MBR3090PT的那個(gè)對(duì)象的VI Server引用。
(2)連接VI Server引用到注冊事件節(jié)點(diǎn)進(jìn)行對(duì)象的事件注冊。
(3)將事件結(jié)構(gòu)放在一個(gè)While循環(huán)中處理事件。
(4)用取消事件注冊函數(shù)停止事件發(fā)生。
下面通過一個(gè)LabVIEW自帶的例子Dynamically Register for Events介紹以上的過程和一些事件函數(shù)的用法。本書對(duì)這個(gè)例子稍微做一下修改,并重命名為“動(dòng)態(tài)注冊事件”。圖2-18是這個(gè)程序的前面板。
運(yùn)行這個(gè)程序后,如果在前面板的撲克牌圖片上單擊,并按住鼠標(biāo)左鍵,就可以拖動(dòng)撲克牌移動(dòng),同時(shí)可以看到循環(huán)數(shù)在增加;在前面板其他位置無論鼠標(biāo)怎樣移動(dòng),循環(huán)數(shù)都不變,說明程序在等待事件發(fā)生。要實(shí)現(xiàn)這種效果,顯然要對(duì)事件注冊隨時(shí)修改,即鼠標(biāo)在撲克牌上按下時(shí)注冊一個(gè)事件,釋放時(shí)注冊另一個(gè)事件。
圖2-19是上述程序的框圖。“當(dāng)前VI路徑”函數(shù)為“打開VI引用”函數(shù)輸入“VI路徑”參數(shù)!按蜷_VI引用”函數(shù)打開當(dāng)前VI的引用。后面兩個(gè)屬性節(jié)點(diǎn)先返回當(dāng)前VI前面板引用句柄,再通過這個(gè)引用句柄返回前面板控件引用句柄。
“注冊事件”節(jié)點(diǎn)的用法和屬性節(jié)點(diǎn)類似,這里設(shè)置了3個(gè)事件端口。“鼠標(biāo)移動(dòng)”事件連接了一個(gè)VI引用句柄常數(shù)。這個(gè)常數(shù)可以由前面板把VI引用句柄控件拖到程序框圖中產(chǎn)生。在這里只是定義一個(gè)事件類型,并沒有實(shí)際注冊事件。另外LabVIEW 8.2不再支持事件源為通用VI引用的鼠標(biāo)移動(dòng)這個(gè)事件,這里由于我們只想說明動(dòng)態(tài)注冊事件,所以直接將例子復(fù)制過來,未做修改!笆髽(biāo)按下”和“鼠標(biāo)釋放”事件連接了Picture控件引用句柄,所以注冊了兩個(gè)關(guān)于鼠標(biāo)在撲克牌上動(dòng)作的事件。除非是修改事件注珊,“事件注冊引用句柄”參數(shù)不必連接。
熱門點(diǎn)擊
- 12C總線具有如下基本特征
- 8031對(duì)外部ROM/RAM的連接
- 單片機(jī)的分類
- 特殊功能寄存器
- 無條件絕對(duì)轉(zhuǎn)移指令
- 二次熔錫問題
- 自動(dòng)打開DataSocket Server
- 單分支結(jié)構(gòu)
- 帶符號(hào)數(shù)表示
- 慢速冷卻與快速冷卻速率溫度曲線參數(shù)比較
推薦技術(shù)資料
- 自制智能型ICL7135
- 表頭使ff11CL7135作為ADC,ICL7135是... [詳細(xì)]
- AMOLED顯示驅(qū)動(dòng)芯片關(guān)鍵技
- CMOS圖像傳感器技術(shù)參數(shù)設(shè)計(jì)
- GB300 超級(jí)芯片應(yīng)用需求分
- 4NP 工藝NVIDIA Bl
- GB300 芯片、NVL72
- 首個(gè)最新高端芯片人工智能服務(wù)器
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究