第六章用户界面设计•一、常用控件1.滚动条(ScrollBar):有水平滚动条和垂直滚动条.(1)主要属性①Value:滑块当前位置所代表的值,默认值为0②Min和Max属性:③SmallChange和LargeChange属性:SmallChange:是用户单击滚动条两端的箭头时Value属性所增加或减少的值.LargeChange:是用户单击滚动条的空白处(滑块与两端箭头之间的区域)时Value属性所增加或减少的值.(2)事件:主要有Scroll和Change.当拖动滑块时会触发Scroll事件,而当改变Value属性时(滚动条内滑块位置改变)会触发Change事件•2.定时器(Timer):以一定的时间间隔产生Timer事件从而执行相应的事件过程(1)主要属性:①Enabled:当Enabled属性为False时,定时器不产生Timer事件.默认值为True.②Interval:决定两个Timer事件之间的时间间隔,其值以ms为单位,最大的时间间隔在约为1min.(2)事件:Timer事件.3.图形框(1)Picture属性:决定控件中所显示的图形文件,其值可以通过下列三种途径获得:①在设计状态直接选择图形文件设置Picture属性②在程序运行时使用LoadPicture()函数装入图形,使用格式为:图形框.picture=LoadPicture(“图形文件名”)例:picturebox1.picture=loadpicture(“c:\winnt\soapbubbles.bmp”)③装入另一个图形框中的图形,形式为:图形框1.picture=图形框2.picture(2)AutoSize属性:当其值为True时,图形框能自动调整大小与显示的图片匹配;当其值为False时,图形框不能自动改变大小.4.图像框与图形框基本相同,都具有Picture属性,区别在于两点:一是图像框不能作为容器存放其他控件;二是图像框没有AutoSize属性,但是有Stretch属性.Stretch属性用于伸展图形,属性为False时,在设计状态,图像框可自动改变大小,以适应其中的图形.当其属性为True时,加载到图像框的图形可自动调整尺寸,以适应图像框的大小,图形有可能会失真.•例6.1:设计如图所示的计算0~18之间某个阶乘的程序.数据由滚动条获得,其Max属性为18,Min属性值是0,smallchange属性是1,largechange属性是3,Value的初始值是0•例6.2设计一个调色板应用程序,使用一个滚动条作为三种基本颜色的输入工具,合成的颜色显示在右边的颜色区中.颜色区实际上是一个文本框,用合成的颜色设置其BackColor属性.当完成调色后,用”设置前景颜色”或设置背景颜色按钮设置右边文本框(text2)的颜色.三个滚动条从上到下按默认约定依次命名,它们的Max,Min,SmallChange,LargeChange和Value属性在设计状态都分别设置为255,0,1,25和0•例6.3设计一个如下图所示的图形缩放程序.窗体上一个图像框,复选框控制图像框的Stretch属性,滚动条控制图形的大小.当拖动滚动条中的滑块时图形随之缩放.•例6.4用一个定时器控制图片的变换菜单和通用对话框•菜单作用:1提供人机对话的界面,方便让用户选择应用系统的各种功能2管理应用系统,控制各种功能模块的运行•优点(1)整体感强,操作目的一目了然,界面友好,直观,使用方便,易于学习和掌握•(2)具有导航功能,为用户在各个菜单的功能间导航•(3)占用屏幕空间小。•二菜单设计菜单有两种类型:一是下拉式菜单,由一个主菜单和若干个子菜单所组成;二是弹出式菜单,是用户在某个对象上单击右键所弹出的菜单.1.菜单编辑器在设计状态,选择”工具”→”菜单编辑器”命令就可打开”菜单编辑器”对话框,如下图所示.菜单的两个属性菜单列表框工具栏中的菜单编辑器(CTRL+E)窗体上快显菜单/菜单编辑器菜单项属性常用属性:1.标题(Caption)访问键:前面加&2.名称(Name)文本框分隔符也应有名称。3.快捷键(Shortcut)菜单名没有快捷键4.复选(Checked)检查框TRUE有5.有效(Enabled)检查框6.可见(Visible)检查框操作按钮例6.5建立一个有菜单功能的图片显示程序。例:设计一个具有算术运算(+-*/)及退出功能的菜单。多键盘上输入两个数,种用菜单命令求它们的和,差,积或商,并显示出来。•2.弹出式菜单:是一种小型的菜单,它可以在窗体的某个地方显示出来,对程序事件作出响应.它是通过单击鼠标右键在窗体的任意位置打开,使用方便,具有较大的灵活性。分两步建立(1)菜单编辑器建立菜单,方法与下拉式菜单相同,不同的是必须把菜单名(即主菜单项)的“可见”属性设置为False;(2)用PopupMenu方法弹出显示。PopupMenu方法的格式:对象.popupmenu菜单名.flags.x,y,boldcommand说明:①PopupMenu方法有6个参数,除“菜单名”外,其余参数均是可选的。当省略“对象”时,弹出式菜单只能在当前窗体显示。②Flags的两组参数可以单独使用,也可以联合使用。当联合使用时,每组中取一个值,两个值相加;③Χ和Y分别用来指定弹出式菜单显示位置的横坐标和纵坐标,如果省略,则弹出式菜单在鼠标光标的当前位置显示。④弹出式菜单的位置由x,y及flags参数共同指定。(见教材291页)⑤为了显示弹出式菜单,通常把popupmenu方法放在MouseDown事件中,该事件响应所有的鼠标单击操作。一般通过单击鼠标右键显示弹出式菜单,可以用Button参数来实现。可用下面语句强制通过单击鼠标右键来响应MouseDown事件。ifbutton=2thenpopupmenu菜单名•例:接上例,建立一个弹出式菜单,用来改变标签字体的属性对话框•对话框是一种特殊的窗口,它通过显示和获取信息与用户进行交流。•对话框的分类:预定义对话框、自定义对话框和通用对话框•对话框的特点:•(1)在一般情况下,用户没在必要改变对话框的大小,因此边框是固定的•(2)为了退出对话框,必须单击其中的某个按钮,不能通过单击对话框外部的某个地方关闭对话框•(3)对话框中不能有最大化按钮和最小化按钮•(4)对话框不是应用程序的主要工作区,只是临时使用,然后就关闭三、通用对话框(CommonDialog)属性Action:打开通用对话框。DialogTiltle:对通用话框标题。CancelErrorTrue:选择“取消”按钮,出现错误警告;Err.Number置为32755(cdCancel)。False(缺省):选择“取消”按钮,没有错误警告。工程/部件选定部件标签选定MicrosoftCommDialogControl6.0通用对话框添加到工具箱通用对话框的类型Action方法打开(Open)1ShowOpen另存为(SaveAs)2ShowSave颜色(Color)3ShowColor字体(Font)4ShowFont打印机(Printer)5ShowPrinter和帮助(Help)6ShowHelp确定打开通用对话框:属性FileName:包含路径FileTitle:不包含路径Filter:例如,Documents(*.DOC)|*.DOC|TextFiles(*.TXT)|*.txt|AllFiles|*.*FilterIndex:决定在文件类型列表框中显示第几组类型的文件。InitDir:初始化路径1.“打开”文件对话框DialogTiltleFileNameInitDirFilterFilterIndexDefaultExt•文件对话框举例参见例6.52.“另存为”对话框没有提供真正的存储文件操作,仍需要编程完成储存操作。属性DefaultExt:缺省扩展名3.“颜色”对话框属性Color:返回或设置选定的颜色。4.“字体”对话框Flags属性:指示所显示的字体类型,必须设置。cdlCFScreenFonts&H1屏幕字体cdlCFPrinterFonts&H2打印机字体cdlCFBoth&H3打印机字体和屏幕字体。cdlCFEffects&H100显示删除线和下划线检查框以及颜色组合框FontNameFontBold、FontItalicFontSizeFontStrikethruFontUnderlineColorMin、Max例6.5中“字体...”菜单5.“打印”对话框属性FromPage:起始页号ToPage:终止页号Copies:打印份数如果打印驱动程序不支持多份打印,该属性有可能始终返回1。6.“帮助”对话框帮助文件需要用其它的工具制作,如MicrosoftWindowsHelpCompiler。属性例8.5HelpCommand:在线Help帮助类型HelpFile:Help文件的路径及其名称HelpKey:在帮助窗口显示由该帮助关键字指定的帮助信息。四、鼠标器和键盘1.鼠标器事件注意:鼠标事件发生在什么对象上,是窗体上还是控件上。MouseDown事件(按下任意一个鼠标按钮时触发)SubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)(发生在窗体上的事件过程)MouseUp事件(释放任意一个鼠标按钮时触发)SubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)(发生在窗体上的事件过程)MouseMove事件(移动鼠标时被触发)SubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)(发生在窗体上的事件过程)(1)Button参数使用符号常数:1—vbLeftButton:用户按下左键触发了鼠标事件;2—vbRightButton:用户按下右键触发了鼠标事件;4—vbMiddleButton::用户按下中键触发了鼠标事件。(2)Shift参数值VB常数含义0Shift,Ctrl和Alt键都没有按下1vbShiftMask只有Shift键被按下2vbCtrlMask只有Ctrl键被按下3vbShiftMask+vbCtrlMaskShift和Ctrl键同时被按下4vbAltMask只有Alt键被按下5vbShiftMask+vbAltMaskShift和Alt键同时被按下6vbCtrlMask+vbAltMaskCtrl和Alt键同时被按下7vbShiftMask+vbCtrlMask+vbAltMaskShift,Ctrl和Alt键同时被按下(3)x,y:鼠标的当前位置例6.7显示鼠标器指针所指的位置例6.8画圆程序按下鼠标右键画园,按下鼠标左键移动时画线。•2鼠标光标的形状在使用Windows及其应用程序时,当鼠标光标位于不同的窗口内时,其形状是不一样的:有时候呈箭头状,有时候是十字,等等.在VB中,可以通过属性设置来改变鼠标光标的形状.(1)MousePointer属性:是一个整数,可以取0~15的值.见教材(263页表10.9)(2)设置鼠标光标形状:①在程序代码中设置MousePointer属性对象.MousePointer=设置值对象:包括复选框,组合框,命令按钮,目录列表框,驱动器列表框,文件列表框,窗体,框架,图像,标签,列表框,图片框,滚动条,文本框,屏幕等.②在属性窗口中设置MousePointer属性③自定义鼠标光标如果把MousePointer属性设置为99,则通过MouseIcon属性定义自己的鼠标光标.有两种方法第一种:在属性窗口定义,把MousePointer设置为99-custom,然后设置MouseIcon属性第二种:在程序代码设置Form1.MousePointer=99form1.MouseIcon=LoadPicture(c:\vb60\graphi