事件結(jié)構(gòu)----基本參數(shù)的含義.
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)論