LabWindows/CVI虚拟仪器设计技术基本控件使用之:Ring 箭头设置
ol)
{ // 普通Ring 控件
case PANEL_RING_PLAIN:
GetCtrlVal (panelHandle, control, &value);
SetCtrlAttribute (panel, control, 20472, value);
break;
//Menu Ring 控件
case PANEL_RING_MENU:
GetCtrlVal (panelHandle, control, &value);
SetCtrlAttribute (panel, control, 20475, value);
break;
//Recessed Menu Ring 控件
case PANEL_RING_RECESSEDMENU:
GetCtrlVal (panelHandle, control, &value);
SetCtrlAttribute (panel, control, 20475, value);
break;
//Popup Menu Ring 控件
case PANEL_RING_POPUPMENU:
GetCtrlVal (panelHandle, control, &value);
SetCtrlAttribute (panel, control, 20475, value);
break;
}
} // 当设置箭头属性为高度时
else
{ // 普通Ring 控件不能设置高度属性
if (control != PANEL_RING_PLAIN)
? {
GetCtrlVal (panelHandle, control, &value);
SetCtrlAttribute (panel, control, 20476, value);
}
}
break;
}
return 0;
}
3:程序注释
① SetCtrlAttribute 函数设置控件属性。函数原型为:
int SetCtrlAttribute (int Panel_Handle, int Control_ID, int Control_Attribute, ...); Control_Attribute :控件属性。...:控件属性值。
② 程序优化
对于Ring 控件响应的arrow 回调函数而言,可进一步优化,将case 分支中的PANEL_RING_MENU 、PANEL_RING_RECESSEDMENU 和PANEL_RING_POPUPMENU 合并,以default 替代,则Ring 控件回调函数修改为:
int CVICALLBACK arrow (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{ //定义箭头的宽度或高度
int style; //定义箭头的数值
int value;
switch (event)
{
case EVENT_COMMIT:
// 判断设置箭头的宽度或高度
GetCtrlVal (panelHandle, PANEL_BINARYSWITCH, &style); // 当设置箭头属性为宽度时
if (style == 0)
{ // 判断响应哪一控件事件
switch (control)
{ // 普通Ring 控件
case PANEL_RING_PLAIN:
GetCtrlVal (panelHandle, control, &value);
SetCtrlAttribute (panel, control, 20472, value);
break;
// 其他Ring 控件
default:
GetCtrlVal (panelHandle, control, &value);
? SetCtrlAttribute (panel, control, 20475, value);
break;
}
}
// 当设置箭头属性为高度时
else
{
// 普通Ring 控件不能设置高度属性
if (control != PANEL_RING_PLAIN)
{
GetCtrlVal (panelHandle, control, &value);
SetCtrlAttribute (panel, control, 20476, value);
}
}
break;
}
return 0;
}
若将GetCtrlVal 函数提到前边,又可减少代码量,Ring 控件回调函数修改为:
int CVICALLBACK arrow (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
//定义箭头的宽度或高度
int style;
//定义箭头的数值
int value;
switch (event)
{
case EVENT_COMMIT:
// 判断设置箭头的宽度或高度
GetCtrlVal (panelHandle, PANEL_BINARYSWITCH, &style);
GetCtrlVal (panelHandle, control, &value);
// 当设置箭头属性为宽度时
if (style == 0)
{
// 判断响应哪一控件事件
switch (control)
{
// 普通Ring 控件
case PANEL_RING_PLAIN:
SetCtrlAttribute (panel, control, 20472, value);
break;
// 其他Ring 控件
default:
SetCtrlAttribute (panel, control, 20475, value);
break;
? }
}
// 当设置箭头属性为高度时
else
{
// 普通Ring 控件不能设置高度属性
if (control != PANEL_RING_PLAIN)
{
SetCtrlAttribute (panel, control, 20476, value);
}
}
break;
}
return 0;
}
LabWindows 虚拟仪器 CVI 控件 Ring 箭头 相关文章:
- 用于雷达测试和验证的自动化测试设备(05-15)
- 基于LabWindows的录波分析仪的设计(03-01)
- LabWindows/CVI虚拟仪器设计技术基本控件使用之: Tab 控件(11-13)
- LabWindows/CVI虚拟仪器设计技术场景与游戏设计之:时钟制作(11-13)
- LabWindows/CVI虚拟仪器设计技术场景与游戏设计之: 下雪场景(11-13)
- LabWindows/CVI虚拟仪器设计技术基本控件使用之:回调函数(11-13)