微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > LabWindows/CVI虚拟仪器设计技术基本控件使用之:Ring 箭头设置

LabWindows/CVI虚拟仪器设计技术基本控件使用之:Ring 箭头设置

时间:11-13 来源:3721RD 点击:

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;

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top