LabWindows/CVI虚拟仪器设计技术基本控件使用之: Tab 控件
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;
}
3:程序注释
① GetPanelHandleFromTabPage 函数获得Tab 页面句柄。函数原型为:
int GetPanelHandleFromTabPage (int Panel_Handle, int Control_ID, int Index, int
*Tab_Panel_Handle);
Panel_Handle:Tab 控件所在面板句柄。
Control_ID:Tab 控件ID。
Index:Tab 页面(标签页)索引,第一个页面为0,依次递增。注意,此值需要用户设定而非系统返回值。
*Tab_Panel_Handle :返回Tab 页面索引指定的页面句柄。
② GetActiveTabPage 函数获得当前激活的Tab 页面索引。函数原型为:int GetActiveTabPage (int Panel_Handle, int Control_ID, int *Active_Index);
*Active_Index :当前激活页面索引值,从0 开始计,–1 表示没有活动页面。
③ CompareStrings 函数
字符串比较函数。将字符串1 中从某一位置开始所组成的子串与字符串2 中从某一位置开始所组成的子串进行比较。函数原型为:
int CompareStrings (char String_1[], int String_1_Index, char String_2[], int String_2_Index, int
Case_Sensitive);
String_1[] :字符串1。
String_1_Index :子串1 起始位置。
String_2[] :字符串2。
String_2_Index :子串2 起始位置。
Case_Sensitive:是否区分大小写。
返回值:0 表示两子串相等,–1 表示子串1 小于子串2,1 表示子串1 大于子串2。
④ valset 回调函数
在valset 回调函数中编写了GetCtrlVal (TabPanelHandle, TABPANEL_NUMERICKNOB, &temp) 语句,值得注意的是,GetCtrlVal 函数Panel Handle 参数并非在程序前面声明的panelHandle, 而是采用了GetPanelHandleFromTabPage 函数的返回Tab 页面句柄TabPanelHandle,也可以利用控件回调函数传回的函数句柄panel 。Control ID 参数可以写成TABPANEL_NUMERICKNOB ,也可以利用控件回调函数传回的控件常量control 参数。此外,为了使数值设置与数值显示看起来同步,可以将event 事件中的EVENT_COMMIT 改写为EVENT_VAL_CHANGED ,修改后的回调函数如下:
int CVICALLBACK valset (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
int temp;
switch (event)
{
case EVENT_VAL_CHANGED:
// 获得Tab 页面句柄
GetPanelHandleFromTabPage (panelHandle, PANEL_TAB, 0, &TabPanelHandle);
// 获得Tab 页面中控件值
GetCtrlVal (panel, control, &temp);
// 设置Tab 页面中控件值
SetCtrlVal (panel, TABPANEL_NUMERICTHERM, temp);
break;
}
return 0;
}
LabWindows 虚拟仪器 CVI 控件 Tab 相关文章:
- 用于雷达测试和验证的自动化测试设备(05-15)
- 基于LabWindows的录波分析仪的设计(03-01)
- LabWindows/CVI虚拟仪器设计技术场景与游戏设计之:时钟制作(11-13)
- LabWindows/CVI虚拟仪器设计技术场景与游戏设计之: 下雪场景(11-13)
- LabWindows/CVI虚拟仪器设计技术基本控件使用之:回调函数(11-13)
- LabWindows/CVI虚拟仪器设计技术场景与游戏设计之: 打蜜蜂(11-13)