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

LabWindows/CVI虚拟仪器设计技术基本控件使用之:三态开关

录入:edatop.com    点击:

(2)程序源代码

//头文件声明
#include <cvirte.h>
#include <userint.h>
#include "三态开关.h"
static int panelHandle;
//主函数
int main (int argc, char *argv[])
{
if (InitCVIRTE (0, argv, 0) == 0)
return –1; /* out of memory */
if ((panelHandle = LoadPanel (0, " 三态开关.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 onoff (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
int value;
switch (event)
{
//响应事件
case EVENT_VAL_CHANGED:
// 获得开关状态值
GetCtrlVal (panelHandle, PANEL_SWITCH, &value);
// 设置电路状态图片框内容
SetCtrlVal (panelHandle, PANEL_PICTURERING, value);
break;
}
return 0;
}

 

3:程序注释

① GetCtrlVal 函数获得控件值。函数原型为:

int GetCtrlVal (int Panel_Handle, int Control_ID, void *Value); 

 *Value :控件值。其声明的数据类型需要与控件的数据类型匹配。

② EVENT 事件

对开关状态按钮回调函数onoff 而言,可以采用EVENT_COMMIT、EVENT_LEFT_CLICK 或EVENT_VAL_CHANGED 等EVENT 事件,但EVENT_COMMIT 、EVENT_LEFT_CLICK 只能是鼠标事件完成后(鼠标按键释放后)才响应此事件,而EVENT_VAL_CHANGED 则当三态开关值改变时立即响应,与前两个事件相比,不存在时间上的延迟,鼠标操作与图像显示能保持一致。

 

(4)运行效果图

点击工具栏中的Debug Project 按钮,程序开始运行,其效果如图1-5 所示。

 

图1-5 运行效果图

 

点击浏览:矢量网络分析仪、频谱仪、示波器,使用操作培训教程

上一篇:湿度环境下关于薄膜电阻的稳定性测试
下一篇:LabWindows/CVI虚拟仪器设计技术基本控件使用之:回调函数

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

  网站地图