新聞中心

EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 事件結(jié)構(gòu)----基本參數(shù)的含義.

事件結(jié)構(gòu)----基本參數(shù)的含義.

作者: 時(shí)間:2017-01-09 來(lái)源:網(wǎng)絡(luò) 收藏
前文提到了事件結(jié)構(gòu),仔細(xì)研究會(huì)發(fā)現(xiàn)要搞清楚也不是很容易.

labwindows是典型的事件驅(qū)動(dòng)編程方式,它是通過(guò)定義回調(diào)函數(shù)實(shí)現(xiàn)的(回調(diào)函數(shù)是WINDOWS編程的基本方法),WINDOWS可以檢測(cè)到系統(tǒng)的各類事件,比如畫(huà)面上一個(gè)按鈕按下了,如果在DOS時(shí)代或者LV6.1以前,是需要用戶在程序中輪巡檢查的(POLLING MODE),這樣,我們的程序?qū)嶋H是兩部分,一是要檢查發(fā)生了什么,而是要決定如果發(fā)生了,我們要如何響應(yīng).通過(guò)事件驅(qū)動(dòng)方式,發(fā)生什么的問(wèn)題已經(jīng)由操作系統(tǒng)管理了,我們要做的只是如何響應(yīng)的問(wèn)題,這樣就極大的減輕的我們的工作量.

本文引用地址:http://m.butianyuan.cn/article/201701/337207.htm

看看LABWIDNOWS的回調(diào)函數(shù)的形式,有助于更好地理解事件驅(qū)動(dòng)的方法.

nt CVICALLBACKxxx(int panel, int control, int event,void *callbackData, int eventData1, int eventData2)

int panel------------------系統(tǒng)通知我們哪個(gè)面板發(fā)生了事件

int control----------------系統(tǒng)通知我們具體哪個(gè)控件發(fā)生了事件

int event------------------系統(tǒng)通知我們發(fā)生的是那一類事件,鼠標(biāo),鍵盤(pán)等

void *callbackData---------傳遞一個(gè)復(fù)雜的數(shù)據(jù)結(jié)構(gòu)指針(LV中新增加的回凋函數(shù)功能用到了它)

int eventData1,int eventData2---事件發(fā)生系統(tǒng)回傳的數(shù)據(jù),不同的事件有不同的含義,一般對(duì)于鼠標(biāo)操作,代表的是

                 X,Y坐標(biāo)


我們?cè)诳纯碙abview中的事件結(jié)構(gòu)定義:

前文提到了事件結(jié)構(gòu),仔細(xì)研究會(huì)發(fā)現(xiàn)要搞清楚也不是很容易.

labwindows是典型的事件驅(qū)動(dòng)編程方式,它是通過(guò)定義回調(diào)函數(shù)實(shí)現(xiàn)的(回調(diào)函數(shù)是WINDOWS編程的基本方法),WINDOWS可以檢測(cè)到系統(tǒng)的各類事件,比如畫(huà)面上一個(gè)按鈕按下了,如果在DOS時(shí)代或者LV6.1以前,是需要用戶在程序中輪巡檢查的(POLLING MODE),這樣,我們的程序?qū)嶋H是兩部分,一是要檢查發(fā)生了什么,而是要決定如果發(fā)生了,我們要如何響應(yīng).通過(guò)事件驅(qū)動(dòng)方式,發(fā)生什么的問(wèn)題已經(jīng)由操作系統(tǒng)管理了,我們要做的只是如何響應(yīng)的問(wèn)題,這樣就極大的減輕的我們的工作量.

看看LABWIDNOWS的回調(diào)函數(shù)的形式,有助于更好地理解事件驅(qū)動(dòng)的方法.

nt CVICALLBACKxxx(int panel, int control, int event,void *callbackData, int eventData1, int eventData2)

int panel------------------系統(tǒng)通知我們哪個(gè)面板發(fā)生了事件

int control----------------系統(tǒng)通知我們具體哪個(gè)控件發(fā)生了事件

int event------------------系統(tǒng)通知我們發(fā)生的是那一類事件,鼠標(biāo),鍵盤(pán)等

void *callbackData---------傳遞一個(gè)復(fù)雜的數(shù)據(jù)結(jié)構(gòu)指針(LV中新增加的回凋函數(shù)功能用到了它)

int eventData1,int eventData2---事件發(fā)生系統(tǒng)回傳的數(shù)據(jù),不同的事件有不同的含義,一般對(duì)于鼠標(biāo)操作,代表的是

                ?。?,Y坐標(biāo)


我們?cè)诳纯碙abview中的事件結(jié)構(gòu)定義:

 

對(duì)比之下,可以看出,少了一個(gè)PANEL,所以LABVIEW的事件結(jié)構(gòu)是屬于一個(gè)面板的,那返回PANEL就沒(méi)有意義了.

多了一個(gè)SOURCE和TIME,它們到底是代表什么那?


這是SOURCE定義的內(nèi)容:LABVIEW把事件共分成四個(gè)類別,LABVIEW UI(用戶接口界面),Activex,user event 和other

前文提到了USER EVENT,我們大部分響應(yīng)的是LABVIEW用戶接口界面的事件.

TIME代表的時(shí)間是什么?經(jīng)過(guò)實(shí)驗(yàn)我們可以得出結(jié)論:

 




GetTickCount() 返回開(kāi)機(jī)以來(lái)經(jīng)過(guò)的毫秒數(shù),這就是EVENT STRUCTURE中TIME的含義.

LABVIEW支持的所有事件看下表




評(píng)論


技術(shù)專區(qū)

關(guān)閉