- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
LabWindows/CVI虚拟仪器设计技术基本控件使用之: Tab 控件
(2)程序源代码
//头文件声明
#include <formatio.h>
#include <cvirte.h>
#include <userint.h>
#include "Tab 控件.h"
//Tab 页面句柄声明
static int TabPanelHandle;
//Tab 页面索引声明
static int index = 0;
static int panelHandle; //主函数
int main (int argc, char *argv[])
{
if (InitCVIRTE (0, argv, 0) == 0)
return –1; /* out of memory */ if ((panelHandle = LoadPanel (0, "Tab 控件.uir", PANEL)) < 0)
return –1;
DisplayPanel (panelHandle);
RunUserInterface ();
DiscardPanel (panelHandle);
return 0;
} //面板回调函数
?int CVICALLBACK PanelCB (int panel, int event, void *callbackData,
int eventData1, int eventData2)
{
switch (event)
{
case EVENT_CLOSE:
QuitUserInterface (0);
break;
}
return 0;
}
//事件响应页面
int CVICALLBACK valset (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
int temp;
switch (event)
{
case EVENT_COMMIT:
// 获得Tab 页面句柄
GetPanelHandleFromTabPage (panelHandle, PANEL_TAB, 0, &TabPanelHandle);
// 获得Tab 页面中控件值
GetCtrlVal (TabPanelHandle, TABPANEL_NUMERICKNOB, &temp);
// 设置Tab 页面中控件值
SetCtrlVal (TabPanelHandle, TABPANEL_NUMERICTHERM, temp);
break;
}
return 0;
}
//页面中的Command Button 按钮
int CVICALLBACK OkCallback (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
int area;
char s[20];
char label[20];
int count;
switch (event)
{
case EVENT_COMMIT:
// 获得控件属性
GetCtrlAttribute (panel, control, ATTR_LABEL_TEXT, label);
// 获得当前激活页面索引
GetActiveTabPage (panelHandle, PANEL_TAB, &index);
// 通过索引获得当前页面句柄
GetPanelHandleFromTabPage (panelHandle, PANEL_TAB, index, &TabPanelHandle);
? // 如果当前页面中的按钮为"设置"时,执行以下操作
if (CompareStrings (label, 0, " 设置", 0, 1) == 0)
{
// 获得页面中指定值
GetCtrlVal (TabPanelHandle, TABPANEL_2_STRING, s);
// 设置当前页面中标签为指定值
SetTabPageAttribute (panelHandle, PANEL_TAB, index, ATTR_LABEL_TEXT, s);
}
// 如果当前页面中的按钮为"获取"时,执行以下操作
if (CompareStrings (label, 0, " 获取", 0, 1) == 0)
{
// 获得Tab 控件中页面数目
GetNumTabPages (panelHandle, PANEL_TAB, &count);
// 显示页面数目
SetCtrlVal (TabPanelHandle, TABPANEL_3_NUMERIC, count);
}
break;
}
return 0;
}
//显示风格回调函数
int CVICALLBACK style (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
int kind;
switch (event)
{
case EVENT_COMMIT:
// 获得控件值
GetCtrlVal (panel, control, &kind);
// 设置Tabp 控件风格
SetCtrlAttribute (panelHandle, PANEL_TAB, ATTR_TABS_LOCATION, kind);
break;
}
return 0;
}
上一篇:LabWindows/CVI虚拟仪器设计技术场景与游戏设计之:时钟制作
下一篇:LabWindows/CVI虚拟仪器设计技术基本控件使用之:Ring
箭头设置