欢迎来到天天文库
浏览记录
ID:46586782
大小:167.10 KB
页数:5页
时间:2019-11-25
《第03讲 事件2》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第3讲事件和用户交互本章介绍LabWmdows/CVI中面板和控件事件的概念、分类和功能,以及如何将鼠标集成到应用程序中去,并且简要介绍了控件响应函数的构成和功能。学习完本章的内容,读者可以深入理解LabWindows/CVI编程的结构并且能更为熟练地应用LabWindows/CVI面板和控件的事件.3.1.1理解事件(什么叫事件)LabWindows/CVI应用程序是以事件的方式驱动的。这是理解LabWindows/CVI编程的基础,可以帮助用户理解程序的整个运行机制。LabWindows/CVI中的事件可以是以下三种情况:•外界用户操作引起的事件(最常见的有鼠标点击
2、、键盘按键等)。•操作系统发送的消息(例如时钟信号等)。•应用程序之间的相互发送消息或者程序本身向自己发送的消息。在LabWindows/CVI中用回调函数来对发生的事件作出响应,也就是说在事件发生后执行相应的回调函数中的语句。LabWndows/CVI和许多Windows下可视化编程软件一样,都是以事件和事件驱动为基础的。“事件驱动”的意思是说只有在事件发生时,程序才会运行。在没有事件发生时,整个程序是处于停滞状态的。而事件本身在程序设计中是非常常见的。在LabWindows/CVI中,面板的移动、缩放、关闭、控件的单击、双击等等都是事件。3.1.2面板事件LabWn
3、dows/CVI中的面板事件是指对激活面板的操作而产生的事件。面板事件包括以下类型,如表3.1所示。表3.1面板事件说明亊件名称含义说明EVENT_LEFT_CLICK鼠标左键单击EVENT_LEFT_DOUBLE_CLICK鼠标左键双击EVENT_RIGHT_CLICK鼠标右键单击EVENT_RIOHT_DOUBLE_CLICK鼠标右键双击EVENT_KEYPRESS键盘操作EVENT_GOT_FOCUS获得焦点EVENT_LOST_FOCUS失去焦点(续)事件名称含义说明EVENT_DISCARD删除面板,由DiscardPanel命令引起EVENT_CLOSE面板
4、关闭EVENTJPANEJU_SEE面板缩放EVENT_PANEL_MOVE面板移动3.1.3控件事件控件事件和面板事件非常类似,除EVENT_CLOSE、EVENT_PANEL_SIZE和EVENT_PANEL_MOVE三种事件外,控件还具有其他各种面板事件。面板所具有的事件在控件中都适用。另外,某些控件具有如表3-2所示的几种事件。表3-2控件車件说明事件名称含义说明EVENT_COMMIT控件被点击,包括鼠标左键单击和控件获得焦点后键盘回输入EVENT_TIMIER_TICK定时触发(定时器适用)EVENT_VAL_CHANGED控件的值被改变(具有值属性的控3.
5、1.4用户事件及其意义1.EVENT_CLOSE应用于面板对象。当用户从系统菜单执行关闭命令或点击窗口右上角的关闭按钮时产生此事件。回调函数中的事件数据无意义。2.EVENT_COMMIT应用于菜单、数值控件、颜色选择数值控件(colornumeric)、数值滑动条(numericslide)、字符串、文本框、命令按钮、图形按钮(picturebutton)、文本按钮(textbutton)、单选控件(radiobutton)、指示灯(LED)、二值开关、下拉列表(ring)、滑动列表(ringslide)、图片列表(picturering)、列表框、曲线图和表格控件。
6、当用户在界面上提交一项操作时会产生此事件,如选择菜单项或在输入框中输入数值后按。LabWindows/CVI除了将COMMIT事件传递给控件回调函数外,还将其加入到GetUserEvent事件队列,除非此事件被忽略。当选择菜单项产生COMMIT事件时,传递给主回调函数的事件数据eventData1为产生事件的面板或菜单条的标识,eventData2为被选择的菜单项的回调函数产生的数据(callbackData)。控件回调函数和主回调函数的关系将在下一节介绍。当表格控件产生COMMIT事件时,事件数据eventData1为产生事件的表格单元的行号,event
7、Data2为列号。如果事件涉及了多个表格单元,例如对多个单元排序或粘贴数据,eventData1和eventData2都会是0。3.EVENT_DISCARD应用于面板和各种控件。当面板或控件被从内存中放弃的时候产生此事件。回调函数中的事件数据无意义。4.EVENT_END_TASK当windows要退出程序时,LabWindows/CVI将此事件传递给主回调函数。忽略此事件可以避免windows退出程序。回调函数中的事件数据无意义。5.EVENT_GOT_FOCUS应用于面板、数值控件、颜色选择数值控件、数值滑动条、字符串、文本框、命令
此文档下载收益归作者所有