一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用LABwindows/CVI軟件搭建學(xué)生管理器界面(三)

CHANBAEK ? 來源:小陳是個工程師 ? 作者:xiaoxiaodawei ? 2023-01-16 14:21 ? 次閱讀

上期對LABwindows/CVI建立的學(xué)生管理器的UI界面中的控件進(jìn)行編程,但是沒有做回調(diào)處理,這期主要對其中控件進(jìn)行回調(diào)函數(shù)的設(shè)計(jì)!

關(guān)鍵詞:回調(diào)函數(shù);

01回調(diào)函數(shù)

1.1、主函數(shù)

main函數(shù)是用戶程序運(yùn)行時首先被執(zhí)行的函數(shù)。main函數(shù)實(shí)現(xiàn)的功能分別是CVI運(yùn)行引擎初始化(InitCVIRTE函數(shù))、加載面板(LoadPanel函數(shù))、顯示面板(DisplayPanel函數(shù))、開始消息隊(duì)列循環(huán)(RunUserInterface函數(shù))。其中RunUserInterface會不斷的檢查面板的消息或者操作系統(tǒng)發(fā)送的消息,永遠(yuǎn)不會返回,除非用戶主動調(diào)用QuitUserInterface函數(shù)中止消息循環(huán)。所以,正常運(yùn)行狀態(tài)下,main函數(shù)中的DiscardPanel永遠(yuǎn)不會被執(zhí)行,main函數(shù)永遠(yuǎn)不會退出,直到程序被關(guān)閉,主函數(shù)如下。

int main (int argc, char *argv[])
{if
(InitCVIRTE (0, argv, 0) == 0)
 return -1;                                        /* out
of memory */
 if
((panelHandle = LoadPanel (0, "show.uir", PANEL)) < 0)
 return -1;
 DisplayPanel(panelHandle);
 RunUserInterface();
 DiscardPanel(panelHandle);
 return 0;}

1.2、回調(diào)函數(shù)一

MainCallBack是我們在面板屬性編輯框中填寫的Callback Function的名字,負(fù)責(zé)執(zhí)行主程序面板消息的響應(yīng)代碼。在switch語句中,我們可以看到,CVI已經(jīng)事先為我們生成好了三個面板最常用的事件:EVENT_GOT_FOCUS、EVENT_LOST_FOCUS以及EVENT_CLOSE。分別在對應(yīng)的case中添加代碼,即可在窗口被激活、窗口失活、以及點(diǎn)擊窗口右上角“關(guān)閉”按鈕時執(zhí)行的代碼。callbackData表示消息發(fā)出時所附帶的數(shù)據(jù)??墒莈ventData1以及eventData2卻容易讓初學(xué)者云里霧里。其實(shí)我們只需要選中任意case語句中的事件(此處可以選擇EVENT_GOT_FOCUS),右擊選擇Go To Defination之后即可發(fā)現(xiàn),CVI User Interface的事件定義全在這里。對eventData1以及eventData2的說明,也在定義的注釋中有所說明。

在此,為了讓用戶點(diǎn)擊程序右上角的關(guān)閉按鈕時,程序可以順利關(guān)閉,在case EVENT_CLOSE語句后面添加QuitUserInterface函數(shù):

int CVICALLBACK MainCallBack (int panel, int
event, void *callbackData,
   int eventData1, int eventData2)
{
 switch(event)
 {
 case EVENT_GOT_FOCUS:break;
 case EVENT_LOST_FOCUS:break;
 case EVENT_CLOSE:
 QuitUserInterface(0);break;
 }
 return 0;
}

1.3、回調(diào)函數(shù)二

這個函數(shù)響應(yīng)五個鍵的功能,代碼如下。

int CVICALLBACK MainPanelBtnCallback (int panel, int control, int event,void *callbackData, int eventData1, int eventData2)
{
 switch(event)
 {
 case EVENT_COMMIT:
 switch(control)
 {   
 char Name[20] = {0};int Number = 0;
 case PANEL_BTN_Add:             //增加
 Creat();break;
 case PANEL_BTN_Delete:     //刪除
 delet(Head); break;
 case PANEL_BTN_Show:      //顯示
 print (Head);break;
 case PANEL_BTN_insert:      //插入
 insert (Head);break;
 case PANEL_BTN_Change:    //更改
 change (Head);
 break;
 }
 break;
 }
 return 0;
}

02運(yùn)行模式

點(diǎn)擊菜單 Run-Debug Project (或點(diǎn)擊工具欄的綠色三角形按鈕)即可直接編譯并運(yùn)行當(dāng)前工程,同時也可以在工程所在目錄下生成exe文件。

右擊工程名并選擇Build(或點(diǎn)擊菜單 Build-Create Debuggable Executable)即可編譯并生成exe文件。

在CVI代碼編輯窗口中單擊代碼前空白部分或者按F9按鍵,則可以在對應(yīng)的C語言語句處設(shè)置斷點(diǎn)。

在程序中斷時,單擊菜單Window即可控制開啟或關(guān)閉 Memory (內(nèi)存)、 Variables (變量)、 Watch(監(jiān)控)窗口,通過查看或者修改對應(yīng)的參數(shù)的值來方便的調(diào)試程序。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • LabWindows
    +關(guān)注

    關(guān)注

    15

    文章

    62

    瀏覽量

    48163
  • 管理器
    +關(guān)注

    關(guān)注

    0

    文章

    250

    瀏覽量

    18859
  • CVI
    CVI
    +關(guān)注

    關(guān)注

    9

    文章

    41

    瀏覽量

    22348
  • 回調(diào)函數(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    88

    瀏覽量

    11789
  • ui界面
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    1649
收藏 人收藏

    評論

    相關(guān)推薦

    關(guān)于LabWindows/CVI和Labview

    最近在學(xué)習(xí)LabWindows/CVI,想找個學(xué)習(xí)網(wǎng)站,最后就找到了這個Labview的網(wǎng)站,不知道有沒有人用LabWindows/CVI,二者有什么區(qū)別,那個功能更強(qiáng)大呢?
    發(fā)表于 07-04 15:49

    美國國家儀器(NI)軟件Labview,Labwindows cvi,Motion,Vision,DAQ開發(fā)與培訓(xùn)

    開發(fā)8)Labview(Labwindows cvi)與第方接口(Dll,ActiveX,.Net)程序開發(fā) 9)Labview(Labwindows
    發(fā)表于 02-29 12:21

    采用LabWindows CVI的飛行模擬應(yīng)用

    載體,以LabWindowsCVI為開發(fā)環(huán)境,主要面向學(xué)生演示飛機(jī)的飛行的姿態(tài)(縱向、升降、傾向、俯仰、橫滾和航向)以及飛行過程中各種儀器儀表的變化,使學(xué)生對飛機(jī)的飛行原理以及駕駛技
    發(fā)表于 07-12 07:37

    一種LabWindows/CVI與MATLAB混合編程的實(shí)現(xiàn)

    Labwindows/CVI 是一套面向測控領(lǐng)域的優(yōu)秀軟件開發(fā)平臺;MATLAB 具有強(qiáng)大的數(shù)據(jù)處理函數(shù)庫和多樣且簡易的繪圖方法。本文提出的修改LabWindows/
    發(fā)表于 06-24 09:29 ?52次下載

    LabWindows/CVI基礎(chǔ)教程

    LabWindows/CVI基礎(chǔ)教程:LabWindows/CVI是National Instruments公司推出的一套面向測控領(lǐng)域的軟件
    發(fā)表于 07-23 08:22 ?0次下載

    LabWindows/CVI與PLC的MPI通信研究

    S7 系列PLC 與虛擬儀器開發(fā)軟件LabWindows/CVI 之間可通過MPI(多點(diǎn)通信接口)網(wǎng)絡(luò)實(shí)現(xiàn)可靠、高速的數(shù)據(jù)通信,從而完成復(fù)雜的工業(yè)現(xiàn)場控制和監(jiān)測任務(wù)。本文闡述了LabWindowsv/
    發(fā)表于 08-29 12:03 ?60次下載

    基于多CPU和LabWindows/CVI 的行車記錄儀系統(tǒng)

    介紹基于多CPU 和LabWindows/CVI 的行車記錄儀系統(tǒng),闡述了主機(jī)的硬件和軟件的設(shè)計(jì)方法和數(shù)據(jù)分析軟件的實(shí)現(xiàn)。
    發(fā)表于 08-31 17:40 ?142次下載

    cvi 8.0 下載 (NI LabWindows 電子測量)

    NI LabWindows/CVI 8.0 (電子測量): NI LabWindows CVI 8.0 最新完整版,專業(yè)強(qiáng)大的用于測試、測量與控制開發(fā)
    發(fā)表于 01-26 09:36 ?892次下載
    <b class='flag-5'>cvi</b> 8.0 下載 (NI <b class='flag-5'>LabWindows</b> 電子測量)

    NI宣布推出ANSI C開發(fā)環(huán)境LabWindows/CVI

    NI 宣布推出ANSI C開發(fā)環(huán)境LabWindows/CVI 2009  美國國家儀器有限公司(National Instruments,簡稱NI)近日宣布推出LabWindows/CVI
    發(fā)表于 01-16 10:27 ?1133次閱讀

    LabWindows教程之LabWindows CVI的虛擬儀器設(shè)計(jì)與應(yīng)用教材免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是LabWindows教程之LabWindows CVI的虛擬儀器設(shè)計(jì)與應(yīng)用教材免費(fèi)下載。 本書詳盡、系統(tǒng)地介紹了NI公司推出的一種虛擬儀器軟件設(shè)計(jì)平臺——
    發(fā)表于 12-03 08:00 ?163次下載

    LabWindows CVI在USB2. 0接口數(shù)據(jù)采集在開發(fā)中的應(yīng)用

    文章介紹了虛擬儀器軟件LabWindows/CVI在USB2. 0接口數(shù)據(jù)采集中的應(yīng)用, 闡述了利用LabWindows/
    發(fā)表于 07-02 15:37 ?30次下載
    <b class='flag-5'>LabWindows</b> <b class='flag-5'>CVI</b>在USB2. 0接口數(shù)據(jù)采集<b class='flag-5'>器</b>在開發(fā)中的應(yīng)用

    Labwindows CVI的簡介說明

    CVI全稱LabWindows/CVI,是一個用于測試和測量的ANSI C開發(fā)環(huán)境,使用CVI編寫測控軟件,能夠極大地提高工程師和科學(xué)家們的
    發(fā)表于 03-17 08:00 ?19次下載
    <b class='flag-5'>Labwindows</b> <b class='flag-5'>CVI</b>的簡介說明

    使用LABwindows/CVI軟件搭建學(xué)生管理器界面(一)

      學(xué)習(xí)完鏈表就需要將其加以應(yīng)用,這期使用LABwindows/CVI創(chuàng)建一個學(xué)生管理器,其中用到了鏈表的知識以及LABwindows/
    的頭像 發(fā)表于 01-16 14:07 ?5848次閱讀
    使用<b class='flag-5'>LABwindows</b>/<b class='flag-5'>CVI</b><b class='flag-5'>軟件</b><b class='flag-5'>搭建</b><b class='flag-5'>學(xué)生</b><b class='flag-5'>管理器</b><b class='flag-5'>界面</b>(一)

    使用LABwindows/CVI軟件搭建學(xué)生管理器界面(二)

    上期使用LABwindows/CVI這個軟件搭建學(xué)生管理器的UI
    的頭像 發(fā)表于 01-16 14:17 ?4638次閱讀

    LabWindows CVI基本學(xué)習(xí)教程

    本書主要介紹了LabWindows/CVI 6.0 下的C語言編程技術(shù)教程,主要內(nèi)容有: LabWindows/CVI 6.0 的集成開發(fā)環(huán)境,面板、控件和菜單的設(shè)計(jì),交互式代碼生成,
    發(fā)表于 05-30 14:27 ?18次下載