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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

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

上期對LABwindows/CVI建立的學生管理器的UI界面中的控件進行編程,但是沒有做回調處理,這期主要對其中控件進行回調函數的設計!

關鍵詞:回調函數;

01回調函數

1.1、主函數

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

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、回調函數一

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

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

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、回調函數二

這個函數響應五個鍵的功能,代碼如下。

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運行模式

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

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

在CVI代碼編輯窗口中單擊代碼前空白部分或者按F9按鍵,則可以在對應的C語言語句處設置斷點。

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

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

    關注

    15

    文章

    62

    瀏覽量

    47952
  • 管理器
    +關注

    關注

    0

    文章

    246

    瀏覽量

    18505
  • CVI
    CVI
    +關注

    關注

    9

    文章

    41

    瀏覽量

    22194
  • 回調函數
    +關注

    關注

    0

    文章

    87

    瀏覽量

    11561
  • ui界面
    +關注

    關注

    0

    文章

    11

    瀏覽量

    1573
收藏 人收藏

    評論

    相關推薦

    關于LabWindows/CVI和Labview

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

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

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

    采用LabWindows CVI的飛行模擬應用

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

    一種LabWindows/CVI與MATLAB混合編程的實現

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

    LabWindows/CVI基礎教程

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

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

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

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

    NI LabWindows/CVI 8.0 (電子測量): NI LabWindows CVI 8.0 最新完整版,專業(yè)強大的用于測試、測量與控制開發(fā)
    發(fā)表于 01-26 09:36 ?889次下載
    <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 ?1091次閱讀

    LabWindows_CVI多線程技術在油門測試軟件中的應用_倪

    LabWindows_CVI多線程技術在油門測試軟件中的應用_倪笑宇
    發(fā)表于 01-13 21:40 ?3次下載

    LabWindows教程之LabWindows CVI的虛擬儀器設計與應用教材免費下載

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

    LabWindows CVI在USB2. 0接口數據采集在開發(fā)中的應用

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

    Labwindows CVI的簡介說明

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

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

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

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

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

    LabWindows CVI基本學習教程

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