事件結(jié)構(gòu)----基本參數(shù)的含義.
前文提到了事件結(jié)構(gòu),仔細研究會發(fā)現(xiàn)要搞清楚也不是很容易.
labwindows是典型的事件驅(qū)動編程方式,它是通過定義回調(diào)函數(shù)實現(xiàn)的(回調(diào)函數(shù)是WINDOWS編程的基本方法),WINDOWS可以檢測到系統(tǒng)的各類事件,比如畫面上一個按鈕按下了,如果在DOS時代或者LV6.1以前,是需要用戶在程序中輪巡檢查的(POLLING MODE),這樣,我們的程序?qū)嶋H是兩部分,一是要檢查發(fā)生了什么,而是要決定如果發(fā)生了,我們要如何響應(yīng).通過事件驅(qū)動方式,發(fā)生什么的問題已經(jīng)由操作系統(tǒng)管理了,我們要做的只是如何響應(yīng)的問題,這樣就極大的減輕的我們的工作量.
看看LABWIDNOWS的回調(diào)函數(shù)的形式,有助于更好地理解事件驅(qū)動的方法.
nt CVICALLBACKxxx(int panel, int control, int event,void *callbackData, int eventData1, int eventData2)
int panel------------------系統(tǒng)通知我們哪個面板發(fā)生了事件
int control----------------系統(tǒng)通知我們具體哪個控件發(fā)生了事件
int event------------------系統(tǒng)通知我們發(fā)生的是那一類事件,鼠標,鍵盤等
void *callbackData---------傳遞一個復(fù)雜的數(shù)據(jù)結(jié)構(gòu)指針(LV中新增加的回凋函數(shù)功能用到了它)
int eventData1,int eventData2---事件發(fā)生系統(tǒng)回傳的數(shù)據(jù),不同的事件有不同的含義,一般對于鼠標操作,代表的是
X,Y坐標
我們在看看Labview中的事件結(jié)構(gòu)定義:
前文提到了事件結(jié)構(gòu),仔細研究會發(fā)現(xiàn)要搞清楚也不是很容易.
labwindows是典型的事件驅(qū)動編程方式,它是通過定義回調(diào)函數(shù)實現(xiàn)的(回調(diào)函數(shù)是WINDOWS編程的基本方法),WINDOWS可以檢測到系統(tǒng)的各類事件,比如畫面上一個按鈕按下了,如果在DOS時代或者LV6.1以前,是需要用戶在程序中輪巡檢查的(POLLING MODE),這樣,我們的程序?qū)嶋H是兩部分,一是要檢查發(fā)生了什么,而是要決定如果發(fā)生了,我們要如何響應(yīng).通過事件驅(qū)動方式,發(fā)生什么的問題已經(jīng)由操作系統(tǒng)管理了,我們要做的只是如何響應(yīng)的問題,這樣就極大的減輕的我們的工作量.
看看LABWIDNOWS的回調(diào)函數(shù)的形式,有助于更好地理解事件驅(qū)動的方法.
nt CVICALLBACKxxx(int panel, int control, int event,void *callbackData, int eventData1, int eventData2)
int panel------------------系統(tǒng)通知我們哪個面板發(fā)生了事件
int control----------------系統(tǒng)通知我們具體哪個控件發(fā)生了事件
int event------------------系統(tǒng)通知我們發(fā)生的是那一類事件,鼠標,鍵盤等
void *callbackData---------傳遞一個復(fù)雜的數(shù)據(jù)結(jié)構(gòu)指針(LV中新增加的回凋函數(shù)功能用到了它)
int eventData1,int eventData2---事件發(fā)生系統(tǒng)回傳的數(shù)據(jù),不同的事件有不同的含義,一般對于鼠標操作,代表的是
X,Y坐標
我們在看看Labview中的事件結(jié)構(gòu)定義:
對比之下,可以看出,少了一個PANEL,所以LABVIEW的事件結(jié)構(gòu)是屬于一個面板的,那返回PANEL就沒有意義了.
多了一個SOURCE和TIME,它們到底是代表什么那?
這是SOURCE定義的內(nèi)容:LABVIEW把事件共分成四個類別,LABVIEW UI(用戶接口界面),Activex,user event 和other
前文提到了USER EVENT,我們大部分響應(yīng)的是LABVIEW用戶接口界面的事件.
TIME代表的時間是什么?經(jīng)過實驗我們可以得出結(jié)論:
GetTickCount() 返回開機以來經(jīng)過的毫秒數(shù),這就是EVENT STRUCTURE中TIME的含義.
LABVIEW支持的所有事件看下表