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

LabWindows/CVI虚拟仪器设计技术基本控件使用之: Tab 控件

录入:edatop.com    点击:

 

(2)程序源代码

 

//头文件声明  

#include <formatio.h>  

#include <cvirte.h>     

#include <userint.h>    

#include "Tab 控件.h"  

//Tab 页面句柄声明

static int TabPanelHandle;      

//Tab 页面索引声明

static int index = 0;  

static int panelHandle; //主函数  

int main (int argc, char *argv[])  

{  

if (InitCVIRTE (0, argv, 0) == 0)  

return –1; /* out of memory */ if ((panelHandle = LoadPanel (0, "Tab 控件.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 valset (int panel, int control, int event,      

void *callbackData, int eventData1, int eventData2)     

{  

int temp; 

switch (event)      

{  

case EVENT_COMMIT:

// 获得Tab 页面句柄   

GetPanelHandleFromTabPage (panelHandle, PANEL_TAB, 0, &TabPanelHandle);     

// 获得Tab 页面中控件值   

GetCtrlVal (TabPanelHandle, TABPANEL_NUMERICKNOB, &temp); 

// 设置Tab 页面中控件值   

SetCtrlVal (TabPanelHandle, TABPANEL_NUMERICTHERM, temp); 

break;

}  

return 0;  

}  

//页面中的Command Button 按钮 

int CVICALLBACK OkCallback (int panel, int control, int event,      

void *callbackData, int eventData1, int eventData2)     

{  

int area;  

char s[20];   

char label[20];   

int count;      

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;           

}          

 

 

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

上一篇:LabWindows/CVI虚拟仪器设计技术场景与游戏设计之:时钟制作
下一篇:LabWindows/CVI虚拟仪器设计技术基本控件使用之:Ring 箭头设置

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

  网站地图