那曲檬骨新材料有限公司

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

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

3天內不再提示

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

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

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

關鍵詞:回調函數(shù);

01回調函數(shù)

1.1、主函數(shù)

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

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

在此,為了讓用戶點擊程序右上角的關閉按鈕時,程序可以順利關閉,在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、回調函數(shù)二

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

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)控)窗口,通過查看或者修改對應的參數(shù)的值來方便的調試程序。

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

    關注

    15

    文章

    62

    瀏覽量

    47973
  • 管理器
    +關注

    關注

    0

    文章

    248

    瀏覽量

    18613
  • CVI
    CVI
    +關注

    關注

    9

    文章

    41

    瀏覽量

    22238
  • 回調函數(shù)

    關注

    0

    文章

    87

    瀏覽量

    11621
  • ui界面
    +關注

    關注

    0

    文章

    11

    瀏覽量

    1584
收藏 人收藏

    評論

    相關推薦

    關于LabWindows/CVI和Labview

    最近在學習LabWindows/CVI,想找個學習網(wǎng)站,最后就找到了這個Labview的網(wǎng)站,不知道有沒有人用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混合編程的實現(xiàn)

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

    LabWindows/CVI基礎教程

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

    LabWindows/CVI與PLC的MPI通信研究

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

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

    介紹基于多CPU 和LabWindows/CVI 的行車記錄儀系統(tǒng),闡述了主機的硬件和軟件的設計方法和數(shù)據(jù)分析軟件的實現(xiàn)。
    發(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 ?1100次閱讀

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

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

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

    文章介紹了虛擬儀器軟件LabWindows/CVI在USB2. 0接口數(shù)據(jù)采集中的應用, 闡述了利用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ā)中的應用

    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 ?5256次閱讀
    使用<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 ?3385次閱讀

    LabWindows CVI基本學習教程

    本書主要介紹了LabWindows/CVI 6.0 下的C語言編程技術教程,主要內容有: LabWindows/CVI 6.0 的集成開發(fā)環(huán)境,面板、控件和菜單的設計,交互式代碼生成,
    發(fā)表于 05-30 14:27 ?17次下載
    利博百家乐官网的玩法技巧和规则 | 必博备用网址| 秦安县| 永利高百家乐官网网址| 老牌百家乐官网娱乐城| 百家乐官网赌博机假在哪里| 最佳场百家乐官网的玩法技巧和规则| 百家乐2万| 威尼斯人娱乐场 送2688元礼金领取lrm64 | 金花百家乐官网的玩法技巧和规则| 百家乐破解辅助| 巴比伦百家乐的玩法技巧和规则 | 足球百家乐官网网上投注| 24山向吉凶详解| 百家乐对付抽水| 澳门足球博彩官网| 百家乐包赢| 新奥博百家乐官网娱乐城| 百家乐翻天粤语下载| 威尼斯人娱乐城 线路畅通中心| 马边| 百家乐官网五湖四海娱乐| 百家乐赌场博彩赌场网| 香港六合彩白小姐图库| 网络百家乐官网赌博赢钱| 百家乐赢钱心得| 大发888游戏代充| 哪里有百家乐官网赌博网站| 百家乐对子赔率| 大发888无数| 广州百家乐官网娱乐场| 菲律宾百家乐的说法| 免费百家乐追号软件| 百家乐官网扑克牌耙| 百家乐娱乐城玩法| 博彩交流| JJ百家乐官网的玩法技巧和规则| 首席百家乐的玩法技巧和规则| 永寿县| 网上百家乐官方网站| 利来国际娱乐网|