预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

LabWindows/CVI中EasyTabControl的使用教程 2016年12月4日,星期日狄阁老 最近在使用国产板卡过程中发现,很多板卡的测试软件都用到了类似于tab的控件,但是子界面很多,又要团队完成的,如果还使用Tab控件就非常麻烦。在CVI使用中,发现CANVAS控件和easytab.fp可以完成Tab控件的任务,下面开始介绍如何使用Easytabcontrol 先新建一个工程,再新建一个主界面和三个子界面,在主界面上添加一个CANVAS控件, 再右下角loadinstruments,找到CVI安装目录下的Toolslib\custctrl下的easytab.fp,再在工程下添加这个fp。 首先介绍一下easytab.fp 双击这个fp.可以看到这个fp内的函数,最重要的两个函数: EasyTab_ConvertFromCanvas(界面句柄,CANVAS的ID); EasyTab_LoadPanels(参数,参数,…..); EasyTab_ConvertFromCanvas函数简单,重点来说EasyTab_LoadPanels 参数1:Panel来自下面这行代码 if((panelHandle=LoadPanel(0,"EasyTabControlTest.uir",PANEL))<0) return-1; 参数2:TabControl来自这行代码 tabCtrl=EasyTab_ConvertFromCanvas(panelHandle,PANEL_CANVAS); 参数3:Row 该参数设置为1 参数4:FileName 指工程的.uir 参数5:CallingModuleHandle 一般设置为常量:__CVIUserHInst 参数6:PanelIDsandHandlePointers 该参数在要设置子界面的ID和句柄 例如:三个界面 EasyTab_LoadPanels(panelHandle,tabCtrl,1,"EasyTabControlTest.uir",__CVIUserHInst,PANEL1,&panel1,PANEL2,&panel2,PANEL3,&panel3,0); 运行后的界面: 代码如下: #include<formatio.h> #include"easytab.h" #include<cvirte.h> #include<userint.h> #include"EasyTabControlTest.h" staticintpanelHandle,tabCtrl,ActPan; intpanel1,panel2,panel3,panel4; intmain(intargc,char*argv[]) { if(InitCVIRTE(0,argv,0)==0) return-1; /*outofmemory*/ if((panelHandle=LoadPanel(0,"EasyTabControlTest.uir",PANEL))<0) return-1; tabCtrl=EasyTab_ConvertFromCanvas(panelHandle,PANEL_CANVAS); EasyTab_LoadPanels(panelHandle,tabCtrl,1,"EasyTabControlTest.uir", __CVIUserHInst,PANEL1,&panel1,PANEL2,&panel2,PANEL3,&panel3,0); EasyTab_SetAttribute(panelHandle,tabCtrl,ATTR_EASY_TAB_STRETCH_TO_FIT,0); //InstallPopup(panelHandle); DisplayPanel(panelHandle); RunUserInterface(); DiscardPanel(panelHandle); return0; } //退出事件 intCVICALLBACKQuitCallback(intpanel,intcontrol,intevent, void*callbackData,inteventData1,inteventData2) { switch(event) { caseEVENT_COMMIT: QuitUserInterface(0); break; } return0; } //切换TAB的事件 intCVICALLBACKTabCtrlCallBack(intpanel,intcontrol,intevent, void*callba