labwindowscvi3第四章 用户事件处理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2014-4-5
使用函数面板的自动插入功能,自动在函数面板 中插入Panel Handle,Control ID等参数,以免出 错; 使用函数面板自动插入功能,自动在源程序中插 入函数代码; 函数的查找要根据所需功能查找Library目录下各 函数库 使用断点跟踪,变量查看功能,定位错误
Normal模式:可以除COMMIT之外的所有事件 Indicator模式:用户不能操作控件,不能产生COMMIT和 VAL_CHANGE事件 Hot模式:默认模式 Validate模式:产生COMMIT前,检查控件值的有效性
2014-4-5
2/9
3. 用户事件的类型
EVENT_CLOSE EVENT_COMMIT EVENT_DISCARD EVENT_END_TASK EVENT_GOT_FOCUS EVENT_IDLE EVENT_LEFT_DOUBLE_CLICK EVENT_LOST_FOCUS EVENT_PANEL_MOVE EVENT_PANEL_SIZE EVENT_RIGHT_CLICK EVENT_RIGHT_DOUBLE_CLICK
int GetUserEvent (int Wait_Mode, int Panel_or_Menu_Bar_Handle, int Control_or_Menu_Item_ID); event = GetUserEvent (1, &panelHandle, &controlID); int ProcessSystemEvents (void); int ProcessDrawEvents (void);
7/9
3. 几个需要注意的问题
Leabharlann Baidu
Constant Name: 控件或面板的常量名,作为控件 或面板的标识,不能重复,一般全用大写字母命 名。自动赋值 Callback Function: 控件或面板的回调函数名,只 有需要响应用户事件的面板或控件才需要。命名 规则符合一般函数的命名规则。 Label: 控件或面板的标注,用于界面显示。 Panel Handle:面板的句柄,在函数中用来指代 面板的标识。LoadPanel函数的返回值,命名规则 同一般变量的命名规则。自动赋值 Panel Resource ID: 面板的常量名 Control ID:在头文件中分配给的控件的常量,一 般为面板的常量名+下划线+控件的常量名。
EVENT_KEYPRESS EVENT_TIMER_TICK EVENT_LEFT_CLICK EVENT_VAL_CHANGED
2014-4-5
3/9
4. 回调函数
回调函数的模式:
基于对象的回调:把程序分成若干小的、易于 管理的部分,每一部分完成特定的工作 主回调:使用InstallMainCallback安装单一的回 调函数处理所有事件。 控件操作事件:控件回调-面板回调-主回调 面板事件:面板回调-主回调 菜单确认事件:菜单项回调-主回调 定时器控件事件:定时器控件回调 主回调事件:主回调
LabWindows/CVI教程(3)
用户事件和回调函数
乔立岩
http://hitee.hit.edu.cn/531net/instrument Email: qiaoliyan@hit.edu.cn MSN: qiaoliyan@msn.com Tel: 86413532/33 ext. 526 Office: 科学园2A栋526
自动化测试与控制研究所
1. 用户事件的概念
LabWindows/CVI中的用户事件就是Windows 操作系统的消息,LabWindows/CVI通过回调函数 的方式处理用户事件,这种基于事件的编程方式简 化了对应用程序流程的控制。
2. 控件的模式
模式决定了用户可以以何种方式操作控件,控件 可以产生哪些用户界面事件。
9/9
5. Graph和Strip Chart的区别
2014-4-5
ProcessSystemEvents
PorcessDrawEvents
7. 程序的调试方法
断点设置 变量查看
6/9
2014-4-5
上机总结
1. 编程步骤
分析任务 创建UIR文件,设计图形用户界面 用自动代码生成器产生代码框架 添加程序功能 编译和调试
2. 编程技巧
4/9
事件触发回调函数的顺序
2014-4-5
5. 使用回调函数响应用户事件
回调函数的声明 CVICALLBACK
2014-4-5
5/9
6. 事件处理
调用事件处理函数RunUserInterface或 GetUserEvent才会处理系统事件 GetUserEvent
8/9
2014-4-5
4. Numeric和Ring控件的区别
Numeric是数值控件,用于输入和显示数据。 Ring是列表控件,用户可以从下拉列表的多个条 目中选择一条,每一个条目都是以标题/数值对 的形式保存的,控件显示各条目的标题。当一个 条目被选中时,它对应的数值就成为当前控件值
Graph是曲线图控件,用来显示图形数据,可以显 示一条或多条图线。一条图线包含曲线、数据点、 几何图形、图片或字符串。 Strip Chart是带状图控件,用来实时显示图形数据, 可以包含一个或多个同时刷新的曲线,每一条曲 线可以代表一个连续测量的数据通道。