0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

CHANBAEK 来源:小陈是个工程师 作者:xiaoxiaodawei 2023-01-16 14:21 次阅读

上期对LABwindows/CVI建立的学生管理器的UI界面中的控件进行编程,但是没有做回调处理,这期主要对其中控件进行回调函数的设计!

关键词:回调函数;

01回调函数

1.1、主函数

main函数是用户程序运行时首先被执行的函数。main函数实现的功能分别是CVI运行引擎初始化(InitCVIRTE函数)、加载面板(LoadPanel函数)、显示面板(DisplayPanel函数)、开始消息队列循环(RunUserInterface函数)。其中RunUserInterface会不断的检查面板的消息或者操作系统发送的消息,永远不会返回,除非用户主动调用QuitUserInterface函数中止消息循环。所以,正常运行状态下,main函数中的DiscardPanel永远不会被执行,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的名字,负责执行主程序面板消息的响应代码。在switch语句中,我们可以看到,CVI已经事先为我们生成好了三个面板最常用的事件:EVENT_GOT_FOCUS、EVENT_LOST_FOCUS以及EVENT_CLOSE。分别在对应的case中添加代码,即可在窗口被激活、窗口失活、以及点击窗口右上角“关闭”按钮时执行的代码。callbackData表示消息发出时所附带的数据。可是eventData1以及eventData2却容易让初学者云里雾里。其实我们只需要选中任意case语句中的事件(此处可以选择EVENT_GOT_FOCUS),右击选择Go To Defination之后即可发现,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(监控)窗口,通过查看或者修改对应的参数的值来方便的调试程序。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • LabWindows
    +关注

    关注

    15

    文章

    62

    浏览量

    47948
  • 管理器
    +关注

    关注

    0

    文章

    246

    浏览量

    18502
  • CVI
    CVI
    +关注

    关注

    9

    文章

    41

    浏览量

    22191
  • 回调函数
    +关注

    关注

    0

    文章

    87

    浏览量

    11554
  • ui界面
    +关注

    关注

    0

    文章

    11

    浏览量

    1573
收藏 人收藏

    评论

    相关推荐

    关于LabWindows/CVI和Labview

    最近在学习LabWindows/CVI,想找个学习网站,最后就找到了这个Labview的网站,不知道有没有人用LabWindows/CVI,二者有什么区别,那个功能更强大呢?
    发表于 07-04 15:49

    美国国家仪器(NI)软件Labview,Labwindows cvi,Motion,Vision,DAQ开发与培训

    开发8)Labview(Labwindows cvi)与第方接口(Dll,ActiveX,.Net)程序开发 9)Labview(Labwindows
    发表于 02-29 12:21

    采用LabWindows CVI的飞行模拟应用

    载体,以LabWindowsCVI为开发环境,主要面向学生演示飞机的飞行的姿态(纵向、升降、倾向、俯仰、横滚和航向)以及飞行过程中各种仪器仪表的变化,使学生对飞机的飞行原理以及驾驶技
    发表于 07-12 07:37

    一种LabWindows/CVI与MATLAB混合编程的实现

    Labwindows/CVI 是一套面向测控领域的优秀软件开发平台;MATLAB 具有强大的数据处理函数库和多样且简易的绘图方法。本文提出的修改LabWindows/
    发表于 06-24 09:29 52次下载

    LabWindows/CVI基础教程

    LabWindows/CVI基础教程:LabWindows/CVI是National Instruments公司推出的一套面向测控领域的软件
    发表于 07-23 08:22 0次下载

    LabWindows/CVI与PLC的MPI通信研究

    S7 系列PLC 与虚拟仪器开发软件LabWindows/CVI 之间可通过MPI(多点通信接口)网络实现可靠、高速的数据通信,从而完成复杂的工业现场控制和监测任务。本文阐述了LabWindowsv/
    发表于 08-29 12:03 60次下载

    基于多CPU和LabWindows/CVI 的行车记录仪系统

    介绍基于多CPU 和LabWindows/CVI 的行车记录仪系统,阐述了主机的硬件和软件的设计方法和数据分析软件的实现。
    发表于 08-31 17:40 142次下载

    cvi 8.0 下载 (NI LabWindows 电子测量)

    NI LabWindows/CVI 8.0 (电子测量): NI LabWindows CVI 8.0 最新完整版,专业强大的用于测试、测量与控制开发
    发表于 01-26 09:36 887次下载
    <b class='flag-5'>cvi</b> 8.0 下载 (NI <b class='flag-5'>LabWindows</b> 电子测量)

    NI宣布推出ANSI C开发环境LabWindows/CVI

    NI 宣布推出ANSI C开发环境LabWindows/CVI 2009  美国国家仪器有限公司(National Instruments,简称NI)近日宣布推出LabWindows/CVI
    发表于 01-16 10:27 1089次阅读

    LabWindows_CVI多线程威廉希尔官方网站 在油门测试软件中的应用_倪

    LabWindows_CVI多线程威廉希尔官方网站 在油门测试软件中的应用_倪笑宇
    发表于 01-13 21:40 3次下载

    LabWindows CVI在USB2. 0接口数据采集在开发中的应用

    文章介绍了虚拟仪器软件LabWindows/CVI在USB2. 0接口数据采集中的应用, 阐述了利用LabWindows/
    发表于 07-02 15:37 29次下载
    <b class='flag-5'>LabWindows</b> <b class='flag-5'>CVI</b>在USB2. 0接口数据采集<b class='flag-5'>器</b>在开发中的应用

    Labwindows CVI的简介说明

    CVI全称LabWindows/CVI,是一个用于测试和测量的ANSI C开发环境,使用CVI编写测控软件,能够极大地提高工程师和科学家们的
    发表于 03-17 08:00 19次下载
    <b class='flag-5'>Labwindows</b> <b class='flag-5'>CVI</b>的简介说明

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

      学习完链表就需要将其加以应用,这期使用LABwindows/CVI创建一个学生管理器,其中用到了链表的知识以及LABwindows/
    的头像 发表于 01-16 14:07 5031次阅读
    使用<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
    的头像 发表于 01-16 14:17 2998次阅读

    LabWindows CVI基本学习教程

    本书主要介绍了LabWindows/CVI 6.0 下的C语言编程威廉希尔官方网站 教程,主要内容有: LabWindows/CVI 6.0 的集成开发环境,面板、控件和菜单的设计,交互式代码生成,
    发表于 05-30 14:27 15次下载