资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第二章 常用控件的使用和编程,主要内容,:,1,、,LabWindows/CVI,的面板,2,、常用控件,文本框控件,数值型控件,命令按钮控件,双态按钮控件,列表框、树控件和表格控件,图表控件,3,、弹出式面板,4,、文件读写和格式化,1,Labwindows/CVI,的面板,1,、,面板的属性,2,2,、面板操作类函数,LoadPanel,函数:将面板装载到内存中,int panelHandle=LoadPanel(int parentPanelHandle,char filename,int panelResourceID),;,NewPanel,函数:创建新面板,int panelHandle=NewPanel(int parentPanelHandle,char panelTitle,int panelTop,int panelLeft,int panelHeight,int panelWidth),;,DisplayPanel,:显示面板,int Status=DisplayPanel(int panelHandle),;,3,DiscardPanel,:删除面板,int Status=DiscardPanel(int panelHandle),;,HidedPanel,:隐藏面板,int Status=HidedPanel(int panelHandle),;,SetPanelAttribute,:设置面板属性,int Status=SetPanelAttribute(int panelHandle,int panelAttribute,.),;,GetPanelAttribute,:获得面板属性,int Status=GetPanelAttribute(int panelHandle,int panelAttribute,void*attributeValue),;,举例:面板函数设计与应用,4,常用控件介绍,1,、控件,通用函数,函数原型,函数功能,函数原型,函数功能,NewCtrl,新建控件,GetCtrlVal,获得控件当前值,DuplicateCtrl,复制控件,SetCtrlVal,设置控件当前值,DiscardCtrl,删除控件,GetCtrlAttribute,获得控件属性值,GetActiveCtrl,获得当前激活控件,SetCtrlAttribute,设置控件属性值,SetActiveCtrl,激活指定控件,GetCtrlBoundingRect,获得控件位置坐标,DefaultCtrl,设定控件默认值,函数的使用举例,5,2,、,文本框控件,用来输入、显示一行或多行文本信息,包括:,String,、,Text Message,和,Text Box,控件,控件属性,6,文本框控件种类不同,其属性设置也不完全相同,以,String,控件为例来说明,。,7,控件功能函数,函数原型,函数功能,InsertTextBoxLine,向文本框内插入一行,ReplaceTextBoxLine,替换文本框中的一行文本,DeleteTextBoxLine,删除文本框中的一行文本,DeleteTextBoxLines,删除文本框中的多行文本,GetNumTextBoxLines,获得文本框文本的行数,ResetTextBox,替换文本框中的全部文本,GetTextBoxLine,获得文本框中的一行文本,GetTextBoxLineLength,获得文本框指定行的字节数,GetTextBoxLineOffset,获得指定文本行的头字符的偏移量,GetTextBoxLineIndexFromOffset,获得指定偏移量的字符所在的行索引,常用函数的使用举例,8,3,、,数值型控件,可作为用户参数输入窗或程序参数回显窗。包括:数值控件,颜色选择控件,数值滑动条。,数值滑动条控件,数值控件,颜色选择控件,控件属性,9,10,4,、,命令按钮控件,用来触发一个事件来进行程序控制,一般必须定义回调函数。包括命令按钮和图片按钮。,控件属性,11,12,5,、,双态按钮控件,具有两种状态,分别为“,1”,和“,0”,。分为,3,类:双态按钮、文本,/,图形双态按钮、单选,/,复选控件。,控件属性,举例说明,控件状态值的设定,13,6,、循环控件,包括下拉列表控件、滑动列表控件、图形列表控件。,用于在一组值中进行选择,既可以用鼠标单击控件框、或单击控件的上、下箭头进行选择,也可以用键盘的,Up,和,Down,键进行选择。,14,控件属性,以下拉列表控件为例来说明,15,16,7,、列表框、树控件和表格控件,列表框为用户提供选项功能,控件本身显示列表项,用户可选择某项,同时具有添加滚动条功能,列表框是由数值和标签对组成的,每对都有其索引值。,树控件提供了一组分组项目列表,用户可以选择某一项目或项目组。,表格控件可以输入或观察数组,每个单独的表格单元有六种类型可以选择:,Numeric,型、,String,型、,Picture,型、,Ring,型、,Combo Box,型和,Button,型。,17,LIST BOX,控件属性,18,LIST BOX,控件的功能函数,实现向列表框中插入项目、删除项目、获得属性值、设置属性值等功能。,InsertListItem(),:向列表控件指定的索引位置插入项目。,int InsertListItem(int panelHandle,int controlID,int itemIndex,char itemLabel,any type Item_Value),;,DeleteListItem(),:删除列表框中一个或多个项目内容。,int DeleteListItem(int panelHandle,int controlID,int itemIndex,int numberOfItems);,GetCtrlIndex(),:获得控件的索引值。,int GetCtrlIndex(int panelHandle,int controlID,int*itemIndex),19,GetLabelFromIndex(),:从指定的索引中得到该标题名。,int GetLabelFromIndex(int panelHandle,int controlID,int itemIndex,char itemLabel);,GetValueFromIndex(),:从指定的索引中获得项目值,int GetValueFromIndex(int panelHandle,int controlID,int itemIndex,void*itemValue);,其它函数可以通过:,LibraryUser Inference LibraryControls/Graphs/Strip ChartsList/Tree,(,Label/Value,),Controls,来查看和使用,具体应用也可参考,CVI,帮助,函数应用举例,20,TREE,控件属性,21,TREE,控件的功能函数,有插入行、删除行、获得单元格数据值、设置单元数据值等功能。,InsertTreeItem(),:插入新项目。,int InsertTreeItem(int panelHandle,int controlID,int relation,int relativeIndex,int position,char itemLabel,char tagBase,char tag,any type Item_Value);,GetNumTreeItems(),:,int GetNumTreeItems(int panelHandle,int controlID,int relation,int relativeIndex,int beginIndex,int direction,int stateCriteria,int*count);),函数应用举例,22,TREE,控件属性,23,TABLE,控件的功能函数,插入行、删除行、获得单元格数据值、设置单元数据值。,函数原型,函数功能,GetActiveTableCell,获得激活的单元格,SetActiveTableCell,激活所指定的单元格,DeleteTableRows,删除表中所指定的行,InsertTableRows,向表格中插入一行,DeleteTableColumns,删除表中所指定的列,InsertTableColumns,向表格中插入一列,SetTableCellVal,设置指定单元格的值,GetTableCellVal,获得指定单元格的值,24,8,、图表控件,Graph,控件:用来图形化显示数据,可以显示一条或多条曲线,每条曲线包含曲线、数据点、几何图形、图片或字符串。,Strip Chart,控件:可以实现绘制一条或多条,动态,曲线,并且能够及时更新,但是不支持绘制几何图形、光标、缩放和移动功能。有,3,种滚动模式:连续模式、刷新模式和块模式,Digital Graph,控件:一般为,Indicator,型,不能通过键盘和鼠标操作,用来显示一组数字,(0,、,1),数据,沿,y,轴从上至下记录数组数据,第一个数据相应的显示在,sample0-line0,上,第二个数据显示在,sample0-line1,上,依次类推,可以用来表示在,Bus,和,Line,上数据的分配情况。将大于等于,1,的数值显示为,1,,等于,0,的数值显示为,0,。,25,GRAPH,控件属性,26,GRAPH,控件功能函数,绘图功能函数,,Graph,控件可以使用不同类型的数据,绘制多种类型的图表。,常用函数介绍,PlotX,沿,y,轴坐标绘制,x,轴数组的曲线图,PlotY,沿,x,轴坐标绘制,y,轴数组的曲线图,DeleteGraphPlot,删除,Graph,控件中一条或多条图形,PlotXY,绘制,x,、,y,轴数组的曲线图,PlotRectangle,绘制矩形,PlotOval,绘制椭圆,PlotPoint,绘制点,PlotPolygon,绘制多边形,PlotLine,绘制直线,27,光标功能函数,如果需要使用光标功能,必须将控件模式设置为,Indicator,型以外的任何类型。,注释功能函数,向图表中加注释,以表明,Graph,控件中的指定数据点,如果用户操作,Graph,控件的注释,需要将控件类型设置为非,Indicator,型控件模式,当用鼠标移动注释标题时,将会连续产生,EVENT_VAL_CHANGED,事件。,缩放、移动视区功能,可将视区内某一特定点放大或缩小,同时也可以使用移动视区功能。,函数应用举例 见例程,(2-11),28,Strip Chart,控件属性,29,Strip Chart,控件功能函数,函数名称,函数功能,PlotStripChart,绘制曲线,PlotStripChartPoint,绘制曲线点,ClearStripChart,清除曲线,GetTraceAttribute,获得控件曲线的属性值,SetTraceAttribute,设置控件曲线的属性值,综合举例,30,9,、弹出式面板,在编写,CVI,程序时,常常需要在程序运行过程中,弹出面板,给用户一些提示。弹出式面板被激活后,将显示在程序的最顶层位置。主要有:,Message Popup,:信息提示弹出面板,Generic Message Popup,:简单的输入信息弹出面板,Prompt Popup,:提示式弹出面板,Confirm Popup,:确认信息弹出式面板,File Select Popup,:文件路径选择弹出式面板,Graph,弹出式面板,Font Select Popup,:打开字体设置对话框,DirSelectPopup,:文件路径弹出对话框,31,MessagePopup,(),GenericMessagePopup,(),PromptPopup(),ConfirmPopup(),FileSelectPopup,(),YGraphPopup,(),FontSelectPopup,(),DirSelectPopup,弹出式面板类函数如下:,具体函数应用见:,LibraryUser Inference Library,Pop-up Panels,32,在对话框中显示信息,等待用户按下,OK,键。可以显示多行信息,使用“,n”,重新开始一行文本。函数原型如下:,int MessagePopup(char title,char message),;,例:,MessagePopup(Message Popup,这是一个,Message Popup,窗口!,),Message Popup,信息提示弹出面板:用来显示提示信息。,33,Generic Message Popup,信息提示弹出面板:可输入信息字符串,并且最多可设置三个按钮,。,在弹出式面板中显示一个设定的信息,同时面板上还有一个字符串文本框接收响应的字符串。函数原型如下:,int GenericMessagePopup(char title,char message,char buttonLabel1,char buttonLabel2,char buttonLabel3,char responseBuffer,int maxResponseLength,int buttonAlignment,int activeControl,int enterButton,int escapeButton),;,34,Prompt Popup(,提示式弹出面板,),:要求用户进行输入操作,。,面板上,显示一个信息等待用户进行信息操作。,函数原型如下:,int PromptPopup(char title,char message,char responseBuffer,int maxResponseLength),;,应用举例 (见例程,2-4,),35,10,、文件读写和格式化,文件读写函数:供用户打开、关闭和读写磁盘文件,函数名称,函数功能,OpenFile,打开文件,CloseFile,关闭文件,ReadFile,将文件读到缓冲区,WriteFile,将缓冲区中的字符串写入文件中,ArrayToFile,将数组内容保存到文件中,FileToArray,从文件中读取数据并存储到数组,GetFileInfo,获得文件信息,SetFilePtr,设置文件指针,具体函数应用可查看:,LibraryFormatting and I/O Library,36,字符串操作函数:包含字符串和字符缓冲区的基本操作。,函数名称,函数功能,StringLength,获得字符串长度,StringLowerCase,将字符串转换为小写,StringUpperCase,将字符串转换为大写,CopyBytes,复制字节,CopyString,复制字符串,CompareBytes,比较字节数,CompareStrings,比较字符串,FindPattern,在缓冲区中查询指定模式的字节,ReadLine,在文件中读取一行字符,WriteLine,将缓存中字符写入文件并加换行符,37,数据格式化函数:可进行复杂的数据格式化输入输出操作。,Fmt,函数:将一个或多个数据源格式化到一个目标文件中。,int Fmt(void*target,char*formatString,source1,.,source n),*target,:存储格式化后的数据。,Source1.,:需要格式化的数据源。,*,formatString,:定义格式化类型,格式如下,“,target_spec,target_spec_and_literals,”,38,Scan,函数:将一个数据源格式化到一个或多个目标文件中。,int Scan(void*source,char*formatString,targetptr1,.,targetptr)*target,:存储格式化后的数据。,Source1.,:需要格式化的数据源。,*,formatString,:定义格式化类型,格式如下,“,source_specs,target_spec_and_literals,”,39,实验安排,1,、,LabWindows,用户界面编程,2,、编写一个函数发生器,3,、数据文件的编程操作,40,
展开阅读全文