LabWindows/CVI虚拟仪器设计技术基本控件使用之:回调函数
void *Reserved);
*HInstance:对于main 函数应为0;对于WinMain 函数应为hInstance ;对于DllMain 应为
hInstDLL。
*Argv[] :对应于main 函数的*argv[] 参数。
*Reserved:保留参数,设置为0。
一般在使用main 函数、WinMain 函数、DllMain 函数时,InitCVIRTE 函数的参数设置稍有不
同,其具体调用方式如下所示:
main 函数
int main (int argc, char *argv[])
{
if (InitCVIRTE (0, argv, 0) == 0)
return –1; /* out of memory */ //用户程序
return 0;
} WinMain 函数
int __stdcall WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int
nCmdShow)
{
if (InitCVIRTE (hInstance, 0, 0) == 0)
return –1; /* out of memory */ //用户程序
return 0;
} DllMain 函数
int __stdcall DllMain (void *hinstDLL, int fdwReason, void *lpvReserved)
{
if (fdwReason == DLL_PROCESS_ATTACH)
{
if (InitCVIRTE (hinstDLL, 0, 0) == 0)
return 0;
//用户ATTACH 程序
}
else if (fdwReason == DLL_PROCESS_DETACH)
{
//用户DETACH 程序
CloseCVIRTE ();
}
return 1;
}
LabWindows/CVI 运行时库引擎主要用在程序发布,并安装在其他计算机上独立运行时。运行时库包括:User Interface Library、Advanced Analysis Library 、Formatting and I/O Library 、Utility Library、ANSI C Library 、RS-232 Library 、TCP Support Library 、Internet Library、Network Variable Library、DDE Support Library 、ActiveX Library 、DIAdem Connectivity Library 、TDM Streaming Library、.NET Library 等。
③ LoadPanel 函数装载用户界面文件(*.uir)或文本用户界面(*.tui)到内存中。装载后,面板不可见,需要调用DisplayPanel 函数来显示面板。
函数原型为:int LoadPanel (int Parent_Panel_Handle, char Filename[], int Panel_Resource_ID); Parent_Panel_Handle :父面板句柄。如果为0,则表示所装载的面板为顶层窗口;如果为面板句柄,则表示所装载的面板为该面板的子面板。
Filename[] :用户界面文件(*.uir )或文本用户界面(*.tui )的文件名。可以包含全部的路径名或只包含一个简单的文件名,如果为简单的文件名,则必须与工程文件在同一目录下。Panel_Resource_ID :面板常量名。
返回值:面板句柄。
④ DisplayPanel 函数将内存中装载的面板显示出来。函数原型为:
int DisplayPanel (int Panel_Handle);
Panel_Handle :面板句柄。
⑤ RunUserInterface 函数
运行用户界面并响应回调函数事件。RunUserInterface 在程序开始后始终运行,直到调用
QuitUserInterface 函数时才返回。函数原型为:
int RunUserInterface (void);
返回值:返回由用户在QuitUserInterface 函数的参数中设置的值。
⑥ QuitUserInterface 函数
QuitUserInterface 函数并不直接终止程序的运行,而是使RunUserInterface 函数返回一个特定值,并进入终止程序运行处理过程。
static int panelHandle;
int main (int argc, char *argv[])
{
int status;
if (InitCVIRTE (0, argv, 0) == 0)
return –1;
if ((panelHandle = LoadPanel (0, "sample.uir", PANEL)) < 0)
return –1;
DisplayPanel (panelHandle);
//返回值status 为10,即:QuitUserInterface 函数的参数设置值
status = RunUserInterface ();
DiscardPanel (panelHandle);
return 0;
}
//退出按钮
int CVICALLBACK QuitCallback (int panel, int control, int event, void *callbackData, int eventData1, int
eventData2)
{
switch (event)
{
case EVENT_COMMIT:
// QuitUserInterface 的参数值为10,即RunUserInterface 的返回值
QuitUserInterface (10);
break;
}
return 0;
}
⑦ DiscardPanel 函数释放面板资源,包含父面板下的子面板。函数原型为:
int DiscardPanel (int Panel_Handle);
Panel_Handle :面板句柄。
⑧ SetCtrlVal 函数设置控件值。函数原型为:
int SetCtrlVal (int Panel_Handle, int Control_ID, …);
Panel_Handle :面板句柄。
Control_ID:控件常量,通常在头文件中声明。…:设置值。
⑨ rand 函数产生0~32767 之间的伪随机数。函数原型为:
int rand (void);
返回值:伪随机数。
⑩ DeleteGraphPlot 函数删除控件所绘制的图形。函数
LabWindows 虚拟仪器 CVI 控件 回调函数 相关文章:
- 用于雷达测试和验证的自动化测试设备(05-15)
- 基于LabWindows的录波分析仪的设计(03-01)
- LabWindows/CVI虚拟仪器设计技术基本控件使用之: Tab 控件(11-13)
- LabWindows/CVI虚拟仪器设计技术场景与游戏设计之:时钟制作(11-13)
- LabWindows/CVI虚拟仪器设计技术场景与游戏设计之: 下雪场景(11-13)
- LabWindows/CVI虚拟仪器设计技术场景与游戏设计之: 打蜜蜂(11-13)