• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 测试测量 > 技术文章 > LabWindows/CVI虚拟仪器设计技术基本控件使用之:Ring 箭头设置

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

录入:edatop.com    点击:

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虚拟仪器设计技术基本控件使用之: Tab 控件
下一篇:LabWindows/CVI虚拟仪器设计技术场景与游戏设计之: 移动控件

微波射频测量操作培训课程详情>>
射频和天线工程师培训课程详情>>

  网站地图