《labwindowscvi2第三章图形用户界面设计.ppt》由会员分享,可在线阅读,更多相关《labwindowscvi2第三章图形用户界面设计.ppt(38页珍藏版)》请在三一办公上搜索。
1、LabWindows/CVI教程(2)用户图形界面设计乔立岩http:/MSN:Tel:86413532/33 ext.526 Office:科学园2A栋526,2023/7/31,图形用户界面设计,图形用户界面(Graphical User Interface)面板(panel)菜单条(menu bar)控件(control)LabWindows/CVI自定义的资源格式面板设计其它资源的容器面板属性编辑器使用用户界面设计函数创建面板和改变面板属性,2023/7/31,面板(panel),2023/7/31,面板编辑窗口,2023/7/31,面板操作函数:NewPanel创建面板int New
2、Panel(int Parent_Panel_Handle,char Panel_Title,int Panel_Top,int Panel_Left,int Panel_Height,int Panel_Width);testPanelHandle=NewPanel(0,新面板,10,10,200,300);LoadPanel载入面板int LoadPanel(int Parent_Panel_Handle,char Filename,int Panel_Resource_ID);testPanelHandle=LoadPanel(0,test.uir,PANEL_TEST);Display
3、Panel显示面板int DisplayPanel(int Panel_Handle);DisplayPanel(testPanelHandle);DiscardPanel释放面板int DiscardPanel(int Panel_Handle)DiscardPanel(testPanelHandle);,2023/7/31,HidePanel隐藏面板int HidePanel(int Panel_Handle);HidePanel(testPanelHandle);GetPanelAttribute获取面板属性int GetPanelAttribute(int Panel_Handle,i
4、nt Panel_Attribute,void*Attribute_Value);GetPanelAttribute(testPanelHandle,ATTR_BACKCOLOR,SavePanelState保存面板状态RacallPanelState调出面板状态,2023/7/31,弹出式面板(Pop-up Panel),2023/7/31,弹出式面板(Pop-up Panel),2023/7/31,弹出式面板函数(Pop-up Panel)InstallPopup载入弹出式面板int InstallPopup(int Panel_Handle);InstallPopup(testPanel
5、Handle);RemovePopup删除弹出式面板int RemovePopup(int Remove_Popup);RemovePopup(0);MessagePopup输出信息对话框int MessagePopup(char Title,char Message);MessagePopup(提示信息,测试结束,全部合格);ConfirmPopup等待确认对话框 Yes or Noint ConfirmPopup(char Title,char Message);response=ConfirmPopup(测试信息,测量错误,是否继续?);PromptPopup等待输入字符信息对话框int
6、 PromptPopup(char Title,char Message,char Response_Buffer,int Max_Response_Length);PromptPopup(输入信息,请输入姓名,2023/7/31,FileSelectPopupint FileSelectPopup(char Default_Directory,char Default_File_Spec,char File_Type_List,char Title,int Button_Label,int Restrict_Directory?,int Restrict_Extension?,int All
7、ow_Cancel?,int Allow_Make_Directory?,char Path_Name);i=FileSelectPopup(c:vxipnp,*.txt,*.*,选择数据文件,VAL_LOAD_BUTTON,0,0,1,0,filename);DirSelectPopupint DirSelectPopup(char Default_Directory,char Title,int Allow_Cancel?,int Allow_Make_Directory?,char Path_Name);i=DirSelectPopup(c:vxipnp,Select Directory
8、,1,1,2023/7/31,菜单条设计简易菜单条和定制菜单条菜单制作和编辑器使用用户界面函数创建和编辑菜单,2023/7/31,菜单编辑窗口,2023/7/31,菜单操作函数:LoadMenuBarint LoadMenuBar(int Destination_Panel_Handle,char Filename,int Menu_Bar_Resource_ID);mainMenuHandle=LoadMenuBar(testPanelHandle,test.uir,MAIN_MENU);DiscardMenuBarint DiscardMenuBar(int Menu_Bar_Handle
9、);DiscardMenuBar(mainMenuHandle);NewMenuBarint NewMenuBar(int Destination_Panel_Handle);mainMenuHandle=NewMenuBar(testPanelHandle);NewMenuint NewMenu(int Menu_Bar_Handle,char Menu_Name,int Before_Menu_ID);menuFileID=NewMenu(mainMenuHandle,文件,1);,2023/7/31,NewMenuItemint NewMenuItem(int Menu_Bar_Hand
10、le,int Menu_ID,char Item_Name,int Before_Menu_Item_ID,int Short_Cut_Key,MenuCallbackPtr Event_Function,void*Event_Callback_Data);DiscardMenuDiscardSubMenuDiscardMenuItem,2023/7/31,控件设计控件种类:数值型(Numeric):数值控件,颜色选择控件,数值滑动条,2023/7/31,文本型(Text):字符串控件,文本信息,文本框,2023/7/31,命令按钮(Command Button):命令按钮,图片按钮双态按钮(
11、Toggle Button):双态按钮,文本/图形按钮,单选/复选控件,2023/7/31,指示等(LED)二值开关(Binary Switch),2023/7/31,列表控件(Ring):下拉列表,滑动列表,图形列表,2023/7/31,列表框(List Box)装饰控件(Decoration),2023/7/31,图形控件(Graph):曲线图控件,带状图控件,数字图控件曲线图控件(Graph),2023/7/31,带状图控件(Strip Chart),2023/7/31,数字图控件(Digital Graph),2023/7/31,图片控件(Picture),2023/7/31,树形控件
12、(Tree),2023/7/31,定时器控件(Timer)画布控件(Canvas),2023/7/31,表格控件(Table),2023/7/31,分隔控件(Splitter),2023/7/31,分页控件(Tab),2023/7/31,定制控件(Custom Control),2023/7/31,通用控件操作函数:GetCtrlValint GetCtrlVal(int Panel_Handle,int Control_ID,void*Value);GetCtrlVal(testPanelHandle,NUMERIC_VOL,2023/7/31,特定控件操作函数:列表控件函数文本框控件函数图
13、形控件函数定时器控件函数表格控件函数 5.用户界面管理:RunUserInterfaceint RunUserInterface(void);QuitUserInterfaceint QuitUserInterface(int Return_Code);QuitUserInterface(0);,2023/7/31,6.图形界面设计举例菜单的制作用Strip Chart显示一组随机数定时温度采集显示,2023/7/31,ActiveX控件,ActiveX技术简介ActiveX技术是指宽松定义的、基于组件对象模型(COM)的技术集合。它是基于已经存在的OLE(对象链接与嵌入)技术,通过把桌面系统
14、“对象共享”的范围扩展到整个Internet,以使得构造这类新应用程序成为可能。COM定义了创建、配置和使用ActiveX应用程序的规则。它是一个二进制标准,包含了一系列规则,目的是构建与语言无关的,面向对象的应用程序。,2023/7/31,ActiveX可以用来开发能在不同的开发环境中重复使用的组件。下面是其中的一些技术:ActiveX自动化在一个程序中自动操作另一个程序。例如,在测试程序中,可以使用ActiveX自动化使LabWindows/CVI程序中在后台操作Microsoft Word,生成带有图形和表格并显示不同字体的测试报告。ActiveX控件在外部程序中使用独立的交互式对象。例
15、如,可以在容器中(如LabWindows/CVI的面板)嵌入并使用一个Microsoft Calendar控件或者Measurement Studio 3D Graph控件。ActiveX文档在容器中(如LabWindows/CVI的面板)查看文档。例如,可以把一个Microsoft Word文档或Excel电子表格放在LabWindows/CVI的面板中显示。,2023/7/31,ActiveX控件ActiveX控件是LabWindows/CVI的外部组件,可以象LabWindows/CVI的内部控件一样使用。设计带有ActiveX控件的程序选择ActiveX控件:在UIR窗口选择Creat
16、ActiveX,选择Creat Control选项,在ActiveX控件列表中选择需要的ActiveX控件,单击OK按钮。设置ActiveX控件属性:双击ActiveX控件,也可以点击编辑控件对话框中的“Property Sheets”按钮,编辑控件特性页。,2023/7/31,生成ActiveX控件驱动程序:在Tools菜单,选择Create ActiveX Controller,或右击ActiveX控件选择Generate ActiveX Control Driver,运行特定控件的ActiveX控制器向导,完成之后生成.fp文件。在使用.fp中的函数之前,用GetObjHandleFro
17、mActiveXCtrl函数获得ActiveX控件句柄。设计举例(媒体播放器),2023/7/31,变量、函数、参数名称的命名建议名称要有意义,使用单词或缩写不易过长,不要超过40个字符,20个以内为宜宏定义:全部用大写字母,字符之间用下划线分隔,如:#define CHANNEL_NUMBER 10;变量名和函数参数名:第一个单词全用小写,其余单词词首大写,其余用小写,如:int bufferSize;double dSampRate;函数名:每个单词开头字母大写,其余用小写,如:double ReadCVT(int chNumber)int SetStopFrequency(double stopFrequency),