第4章 用户界面设计第4章 用户界面设计24.1 菜单设计4.2 工具栏设计4.3 状态栏设计4.4 对话框设计4.5 多文档 界面设计4.6 应用案例与设计--利用菜单、工具栏实现多窗体应用程序设计4.1 菜单设计1.下拉式菜单菜单的基本结构包括:菜单栏 、菜单标题、一级菜单、子菜单。2.弹出式菜单弹出式菜单就是在Windows中常用的浮动式菜单。创建菜单1.菜单编辑器的使用打开“菜 单编辑器”窗口的方法有以下几种:⑴ 选择“工具”菜单中的“菜单编辑器”菜单项。⑵ 单击标准工具栏中的“菜单编辑器”按钮。⑶ 在窗体 中单击右键,在弹出的快捷菜单中(如图4.2所示)选择“菜单编辑器”菜单项。⑷ Ctrl+E组合键。2.在“菜单编辑器”窗口中创建菜 单的方法创建菜单(续)创建菜单(续)3.分隔菜单项在菜单项较多的菜单上,可以使用分隔线将各项划分成一些逻辑组。4.设置访问键和快捷 键访问键一般用于在鼠标失效时,为用户操作菜单提供的按键选择。使用访问键时,要同时按下Alt键和该字母键。快捷键是为了更快地执行菜单 项命令,为每个底层菜单项设置的一种键盘操作手段,快捷键一般为键盘上的功能键或它们与其他字母键的组合。创建菜单(续)5.创建子菜单使 用菜单编辑器创建的每个菜单最多可以包含5级子菜单,子菜单会分支出另一个菜单以显示它自己的菜单项。一般地,在菜单栏已满情况下需要使用 子菜单。弹出式菜单设计弹出式菜单是独立于窗体菜单栏而显示于窗体任何位置的浮动菜单。弹出式菜单的显示取决于按下鼠标右键时指针所处的位 置,在Windows 9.X中,一般是通过单击鼠标右键来激活弹出式菜单的。 弹出式菜单设计(续)以“编辑”主菜单项为例进行设计,设 计如图4.10所示。 图4.10 创建弹出式菜单 弹出式菜单设计(续)创建弹出式菜单具体方法如下:⑴ 在“菜单编辑器”窗口中建立 一个将要作为弹出式菜单的主菜单项。该主菜单项的标题(Caption属性)为编辑(&E),名称(Name属性)为EDIT,所包含的菜 单项为“剪切”、“复制”、“粘贴”。建好弹出式菜单所需的菜单后,可以把“编辑”的Visible属性设置为False,也可以设为Tr ue。弹出式菜单设计(续)⑵ 为建立好的弹出式菜单编写程序代码。 在代码窗口中选择Form对象,再在过程列表框中选择MouseUp ,则出现Form_MouseUp事件过程的模板。Private Sub Form_MouseUp(Button As Intege r,Shift As Integer,X As Single,Y As Single) End Sub 在事件过程模板中添加下列 代码:If Button=2 Then ′检查是否单击鼠标右键 PopupMenu EDIT ′EDIT是"编辑"菜单的控制 名,将其激活显示在窗体上End If弹出式菜单设计(续)对于上例,利用窗体的MouseUp事件,当用户在窗体中单击鼠标右键时,上述 代码可将控制名为EDIT的弹出式菜单激活显示在鼠标所在处。要显示弹出式菜单,可使用PopupMenu方法。PopupMenu方法的 语法如下:[object.]PopupMenu Menuname [,Flags [, X[, Y [, Boldcommand ]]]]其中,object(可选):窗口名称表达式。Menuname(必需):为所要显示的弹出式菜单名(本例编辑菜单名为EDIT) 。Flags(可选):一个数值或常数,按照下列设置中的描述,用以指定弹出式菜单的位置和行为 在菜单中添加文件列表1.设计时创建菜 单控件数组用户如果要在菜单编辑器中创建菜单控件数组2.运行时动态地创建菜单数组菜单控件数组中的元素也可以在运行时动态创建4.2 工具栏设计工具栏控件(ToolBar)用来在窗体上产生具有很多按钮对象的工具栏,按钮上可以显示文字、图形。ImageList控件1 .ImageList控件2.常用属性IndexKeyPicture3.ImageList控件的创建ToolBar控件在Visual Basic 6.0中,没有把ToolBar控件作为标准控件,它属于系统扩充的ActiveX控件。1.ToolBar控件的属性卡2 .ToolBar控件的常用属性ImageList属性DisableImageList属性HotImageList属性ShowTip s 属性Visible属性Style属性ToolBar控件(续)3. ToolBar控件常用的事件和方法ButtonClick 事件 Add()ToolBar控件名.Buttons.Add(Index,Key,Caption,Style,Image)Remo ve()ToolBar控件名.Buttons.Remove按钮的Index值Clear()ToolBar控件名.Buttons.C lear4.3 状态栏设计用户可以在应用程序中添加状态栏,状态栏一般位于窗体的底部,用于向用户显示系统的一些状态。4.4 对话 框设计对话框是一种特殊的窗体,既可以用来显示信息,也可以用于输入应用程序继续执行所需要的数据。使用函数生成对话框1.消息框通过执行 Visual Basic中的MsgBox函数,可以在屏幕上出现一个消息框来显示消息MsgBox函数的语法格式如下:MsgBox( prompt[,buttons][,title][,helpfile,context])tt = MsgBox("请选择操作", 65, "消息框")使用函数生成对话框(续)2.输入框在Visual Basic中提供InputBox函数为用户建立输入框。Inp utBox函数的语法格式:InputBox(prompt[,title][,default][,xpos][,helpfile c ontext])name = InputBox("请输入用户名:", "输入对话框") 通用对话框Visual Basic提供通用 对话框(CommonDialog)控件,通过该控件可以创建“打开”、“另存为”、“颜色”、“字体”和、“打印”和“帮助”6种标准对 话框。CommonDialog控件不在标准工具箱中,在使用之前,应先将其添加到工具箱中。通用对话框(续)表4.10 通用对话框的 方法列表“打开”和“另存为”对话框实例 在窗体上放置6个CommandButton控件,分别为:“打开”按钮,其Name属性为co mmand1;“另存”按钮,其Name属性为command2;“颜色”按钮,其Name属性为command3;“字体”按钮,其Na me属性为command4;“打印”按钮,其Name属性为command5;“帮助”按钮,其Name属性为command6;以及一 个CommonDialog控件,其默认Name属性为commondialog1,如图4.36所示。“打开”和“另存为”对话框实例( 续)图4.36 示例使用的窗体“打开”和“另存为”对话框实例(续)要显示打开或者另存为对话框,程序代码如下:Private Su b Command1_Click()CommonDialog1.FileName = ""CommonDialog1.Filter = "all files|.bmp|.txt|.doc" ''设置文件过滤器Text1.Text = "正在打开"Commo nDialog1.ShowOpen ''显示"打开"对话框End Sub“打开”和“另存为”对话框实例(续)Private Sub Command2_Click()CommonDialog1.FileName = ""CommonDialog1.Filter = "Bmp Files(.bmp;.BMP)" ''设置文件过滤器Text1.Text = "正在另存"CommonD ialog1.ShowSave ''显示"另存为"对话框End Sub“打开”和“另存为” 对话框实例(续)Private Sub Command3_Click() CommonDialog1.Flags = cdlCC RGBInit ''为对话框设置初始颜色值 CommonDialog1.ShowColor ''显示"颜色"对话框 Text1.BackColor = CommonDialog1.Color ''设置背景颜色End Su b “打开”和“另存为”对话框实例(续)Private Sub Command4_Click() CommonDialog1 .ShowFont ''显示"字体"对话框 CommonDialog1.Flags = cdlCFBoth Text1. FontSize = CommonDialog1.FontSize Text1.FontUnderline = Common Dialog1.FontUnderline Text1.FontStrikethru = CommonDialog1.Fon tStrikethru Text1.FontBold = CommonDialog1.FontBold Text1.F ontItalic = CommonDialog1.FontItalicEnd Sub“打开”和“另存为”对话框实例(续)Priv ate Sub Command5_Click() CommonDialog1.Copies = 1 ''设置默 认打印份数 CommonDialog1.ShowPrinter ''显示"打印"对话框End SubPrivate Sub Command6_Click() CommonDialog1.HelpFile = "c:\windows\help \notepad.hlp" CommonDialog1.HelpCommand = cdlHelpForceFile CommonDialog1.ShowHelp ''显示帮助文件End Sub“打开”和“另存为”对话框实例(续)程序运行后,单击 “ 打开”按钮,显示如图4.37所示的对话框,单击 “另存为”按钮,显示如图4.38所示的对话框,用户可从文件类型列表中看到文件过滤器 的结果,单击“颜色”按钮,显示如图4.39所示的“颜色”对话框,选定颜色后,单击“确定”按钮,可以设置Text1中字体颜色,单击“ 字体”按钮,显示如图4.40所示的“字体”对话框,单击“打印”按钮,显示如图4.41所示的“打印”对话框,单击“帮助”菜单项,即可 启动Windows帮助系统,如图4.42所示。 “打开”和“另存为”对话框实例(续)图4.37 “打开”对话框 图4.38 “ 另存为”对话框 “打开”和“另存为”对话框实例(续)图4.39 “颜色”对话框 图4.40 “字体”对话框 “打开”和“另存为 ”对话框实例(续)图4.41 “打印”对话框 图4.42 启动的帮助文件自定义对话框用窗体自定义对话框的一般步骤如下:⑴ 向工程中添加窗体。⑵ 在窗体上创建其他控件对象,定义对话框的外 观。⑶ 设置窗体和控件对象的属性。⑷ 在代码窗口中创建事件过程。自定义对话框(续)【例4.3】 设计一个应用程序的口令检测对话框 。在窗体form1的基础上,添加新窗体,如图4.45所示,其Name属性为form2,Caption属性为“口令”,MaxButt on和MinButton属性为False。新添加窗体上的控件为:Label1用于显示“请输入口令:”;Label2用于提示口令出错 ,其不可见;文本框Text1用于输入口令,显示为“”;命令按钮cmdok和cmdcancel。自定义对话框(续)图4.45 实 例窗体4.5 多文档界面设计基于Windows应用程序的用户界面主要有两大类:单文档界面(SDI)和多文档界面(MDI)。在MD I应用程序中至少包含两种窗体:父窗体和子窗体。4.5 多文档界面设计(续)1.MDI窗体的特性⑴ 主窗口MDI窗体只能有且只有一 个。⑵ 子窗体至少有一个。⑶ 所有的子窗体无论如何操作都不能移出MDI窗体。⑷ 子窗体最小化后的图标位于MDI窗体的底部,而不是在 任务栏。⑸ 父窗体最小化时,所有的子窗体也同时最小化,并且MDI窗体及其所有的子窗体将由一个图标来代表。4.5 多文档界面设计( 续)2.MDI窗体的常用属性和方法ActiveForm属性Arrange方法3.创建MDI窗体4.加入MDI子窗体5.加载和关闭M DI父窗体及子窗体⑴ 加载MDI父窗体及子窗体⑵ 关闭MDI窗体【例4.4】 在MDI父窗体MDIForm1上设计一个菜单,包含 3个菜单项,标题分别为“层叠”、“平铺”和“退出”,名称分别为menu1、menu2和menu3,另外设计两个子窗体,名称分别为F orm1和Form2,通过菜单进行操作。【例4.5】 在创建两个子窗体的基础上,使用户通过单击图4.52中“文件”菜单下的“打开 ”菜单项打开两个文件。需要在子窗体Form1和Form2中各添加一个文本框Text1,并调整大小与子窗体一样大。4.5 多文档界 面设计(续) 图4.52 显示MDI窗体菜单4.6 应用案例与设计--利用菜单、工具栏实现多窗体应用程序设计应用案例要求 本案例要 求将窗体与控件一章设计的多窗体应用程序进行修改,增加菜单和工具栏,其功能主要包含以下3个: ⑴通过选择菜单项调用 “个人基本信息编辑”、“图片、图像预览”、“秒表”、“编程基础”4个窗体,同时在状态栏中显示打开不同窗体信息; ⑵通过选择工具栏图片按钮调用 “个人基本信息编辑”、“图片、图像预览”、“秒表”、“编程基础”4个窗体; ⑶通过选择弹出菜单项调用 “个人基本信息编辑”、“图片、图像预览”、“秒表”、“编程基础”4个窗体。实训四 用户界面设计 1、设计界面,能够实现文本和图片的显示与设置。 2、在第1个实训的基础上增加父窗体及工具栏、状态栏等功能。 3、设计一个文本编辑器,运行时界面如图4.77所示。 ⑴ 要求实现查找和替换功能。 ⑵ 要求实现字数统计功能。 ⑶ 要求实现打印窗口,并能设置页面边距。 ⑷ 要求实现段落的缩进设置。 ⑸ 要求能显示文件的属性信息。实训四 用户界面设计(续)图4.77 文本编辑器运行界面 |
|