LabWindows CVI Easy tab control使用教程

2019-05-24 14:01

LabWindows/CVI中EasyTab Control的使用教程

2016年12月4日,星期日 狄阁老

最近在使用国产板卡过程中发现,很多板卡的测试软件都用到了类似于tab的控件,但是子界面很多,又要团队完成的,如果还使用Tab控件就非常麻烦。在CVI使用中,发现CANVAS控件和easy tab.fp可以完成Tab控件的任务,下面开始介绍如何使用Easytab control

先新建一个工程,再新建一个主界面和三个子界面,在主界面上添加一个CANVAS控件, 再右下角load instruments,找到CVI安装目录下的Toolslib\\custctrl下的easytab.fp,再在工程下添加这个fp。

首先介绍一下easytab.fp

双击这个fp.可以看到这个fp内的函数,最重要的两个函数:

1) EasyTab_ConvertFromCanvas (界面句柄, CANVAS的ID);

2) EasyTab_LoadPanels (参数,参数,…..);

EasyTab_ConvertFromCanvas函数简单,重点来说EasyTab_LoadPanels

参数1:Panel 来自下面这行代码

if ((panelHandle = LoadPanel (0, \PANEL)) < 0) return -1;

参数2:Tab Control 来自这行代码

tabCtrl = EasyTab_ConvertFromCanvas (panelHandle, PANEL_CANVAS);

参数3:Row 该参数设置为1

参数4:File Name 指工程的.uir

参数5:Calling Module Handle 一般设置为常量:__CVIUserHInst

参数6:Panel IDs and Handle Pointers 该参数在要设置子界面的ID和句柄 例如:三个界面

EasyTab_LoadPanels (panelHandle, tabCtrl, 1, \__CVIUserHInst,PANEL1, &panel1, PANEL2, &panel2, PANEL3, &panel3, 0);

运行后的界面:

代码如下:

#include #include \

#include #include

#include \

static int panelHandle,tabCtrl,ActPan; int panel1,panel2,panel3,panel4;

int main (int argc, char *argv[]) {

if (InitCVIRTE (0, argv, 0) == 0) return -1; /* out of memory */

if ((panelHandle = LoadPanel (0, \< 0)

return -1;

tabCtrl = EasyTab_ConvertFromCanvas (panelHandle, PANEL_CANVAS); EasyTab_LoadPanels (panelHandle, tabCtrl,1, \

__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); return 0; }

//退出事件

int CVICALLBACK QuitCallback (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) {

switch (event) {

case EVENT_COMMIT:

QuitUserInterface (0); break; }

return 0; }

//切换TAB的事件

int CVICALLBACK TabCtrlCallBack (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) {

char ActPanOut[100];

switch (event) {

case EVENT_TAB_CHANGED:

EasyTab_GetAttribute (panelHandle, tabCtrl , ATTR_EASY_TAB_ACTIVE_PANEL, &ActPan);

//EasyTab_GetAttribute (panelHandle, tabCtrl, ATTR_EASY_TAB_META_FONT, mm);

Fmt (ActPanOut, \激活了第%d子界面\ SetCtrlVal (panelHandle, PANEL_STRING, ActPanOut); break; }

return 0; }

int CVICALLBACK AutosizeCallback (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) {

int status; switch (event) {

case EVENT_COMMIT:

status=EasyTab_AutoSize (panelHandle, tabCtrl); break; }

return 0; }

int CVICALLBACK AddPanelCallback (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) {

switch (event) {

case EVENT_COMMIT:

//&panel4 = NewPanel (panelHandle, \ EasyTab_AddPanels (panelHandle, tabCtrl, 1,PANEL4,0,0); break; }

return 0; }

//移除tab

int CVICALLBACK deltetCallback (int panel, int control, int event, void *callbackData, int eventData1, int eventData2)


LabWindows CVI Easy tab control使用教程.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:江西省建筑工程公司名录2018版8130家

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: