1 / 37

界 面 设 计

界 面 设 计. 第 8 章. 本章要点: Visual Basic 中的菜单设计 Visual Basic 中的 对话框设计. 8.1 Visual Basic 中的菜单设计. Windows 环境下几乎所有的应用软件都通过菜单实现各种操作。菜单将应用程序的各种操作分组显示在界面上,用户可以方便地从菜单中选择执行各种功能。. 两种基本菜单类型: 下拉式菜单 弹出式菜单. 子 菜单. 主菜单标题. 主菜单栏. 子 菜单. 菜单命令. 分隔条. 1. 下拉式菜单的结构. 8.1.1 下拉式菜单. 访问键. 快捷键. 顶级菜单.

natane
Download Presentation

界 面 设 计

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 界 面 设 计 第8章 本章要点: • Visual Basic中的菜单设计 • Visual Basic中的对话框设计

  2. 8.1 Visual Basic中的菜单设计 • Windows环境下几乎所有的应用软件都通过菜单实现各种操作。菜单将应用程序的各种操作分组显示在界面上,用户可以方便地从菜单中选择执行各种功能。 • 两种基本菜单类型: • 下拉式菜单 • 弹出式菜单

  3. 菜单 主菜单标题 主菜单栏 子 菜单 菜单命令 分隔条 1. 下拉式菜单的结构 8.1.1 下拉式菜单 访问键 快捷键 顶级菜单

  4. 2. 菜单编辑器 • 菜单项: 看成控件,具有其属性、事件、方法。 • 菜单项也称为菜单控件。 • 菜单设计: 通过“菜单编辑器”完成。 • 首先使窗体成为当前窗体 • 使用以下方法打开菜单编辑器: • 执行“工具”菜单下的“菜单编辑器”命令 • 单击标准工具栏的“菜单编辑器”按钮 • 从窗体快捷菜单中选择“菜单编辑器”命令 • 菜单编辑器结构: 属性区、编辑区、菜单列表区

  5. Caption 属性区 Name Index Shortcut 编辑区 菜单列表区 Checked Enabled Visible WindowList(MDI) HelpContextID NegotiatePosition 注: 标题框中键入“-”和“&”符号的作用。 不能给顶级菜单项加快捷键。

  6. 2.下拉式菜单的设计 • 例8.1:设计一个可以改变文本框中文字的字体及颜色的菜单,字体有黑体、宋体、楷体,颜色有红色、黄色、蓝色。

  7. 进入菜单编辑器,按下表输入菜单项各项数据。进入菜单编辑器,按下表输入菜单项各项数据。

  8. 在菜单编辑器中,可以按左右箭头、上下箭头调整菜单的级别和顺序,完成编辑后菜单编辑器界面如图所示。在菜单编辑器中,可以按左右箭头、上下箭头调整菜单的级别和顺序,完成编辑后菜单编辑器界面如图所示。

  9. 完成菜单的设计后,在窗体上画一个文本框,用于输入要设置字体和颜色的文字,然后在窗体上单击每一个菜单项,输入相应的Click事件代码完成菜单的设计后,在窗体上画一个文本框,用于输入要设置字体和颜色的文字,然后在窗体上单击每一个菜单项,输入相应的Click事件代码

  10. 8.1.2 弹出式菜单 • 弹出式菜单:上下文菜单、快捷菜单、右键菜单 • 为某对象设计弹出式菜单的步骤: • 1) 在菜单编辑器中设计各菜单项,然后将顶级菜单设置为不可见。 • 2) 在对象的MouseDown事件过程中编写代码,用以下的PopupMenu方法显示弹出式菜单: • [<窗体名>.]PopupMenu <菜单名> • ,flags[,x[,y[,boldcommand]]]] • 功能: 在当前鼠标位置或指定的坐标位置显示弹出式菜单。

  11. 参数: • <窗体名>:指菜单所在的位置,如果省略,则默认为是当前窗体。 • <菜单名>:指在菜单编辑器中设计的菜单项(至少有一个子菜单)的名称。 • Flags:可选项,可以是一个数值或常量,用于指定弹出式菜单的位置和行为,取值见P199表10-3和表10-4。如果要同时指定位置和行为时,则将两个参数值用Or连接,如: 4 Or 2 • x、y:指定显示弹出式菜单的x坐标和y坐标。省略时为鼠标坐标。 • boldcommand:指定弹出式菜单中要显示为黑体的菜单控件的名称。如果该省略参数,则弹出式菜单中没有以黑体字出现的菜单项。

  12. 设计一个快捷菜单,其作用是改变文本框中的字体,包含“黑体”、“宋体”和“楷体”功能,右击窗体时弹出该快捷菜单。设计一个快捷菜单,其作用是改变文本框中的字体,包含“黑体”、“宋体”和“楷体”功能,右击窗体时弹出该快捷菜单。 • 操作步骤: • (1)进入菜单编辑器,输入顶层菜单,标题设定为“字体”,名称为“zt”。其实该标题和名称可任意设定,因为它在快捷菜单弹出时不显示。 • (2)在菜单编辑器中将“字体”菜单标题的“可见”框中的“√”取消(即不选中)。 • (3)单击“下一个”命令按钮,标题输入“黑体”,名称为“ht”,单击右箭头按钮,将“黑体”菜单项设置为“字体”菜单的下一级菜单。 • 参照步骤3完成“宋体”和“楷体”菜单项的设置。 • (4)在窗体上画一个文本框,用于输入要设置字体的文字。 • (5)进入代码窗口,输入下面设置字体的代码。

  13. Private Sub ht_Click() • Text1.Font = "黑体" • End Sub • Private Sub kt_Click() • Text1.Font = "楷体_Gb2312" • End Sub • Private Sub st_Click() • Text1.Font = "宋体" • End Sub • (6)由于在窗体上单击鼠标右键时才会弹出快捷菜单,所以需要在窗体的MouseUp事件里编写对应的代码。进入代码窗口,输入以下代码: • Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) • If Button = 2 Then '若单击鼠标右键 • PopupMenu zt '弹出字体快捷菜单 • End If • End Sub

  14. 运行程序,单击鼠标右键,结果如图所示。

  15. 8.2 Visual Basic中的对话框设计 • 对话框: 特殊类型的窗体对象。 • 作用: 是用户和应用程序交互的主要途径。 • 建立方法: • 使用预定义对话框,即输入框、消息框。 • 定义对话框。 • 使用CommonDialog控件创建通用对话框。

  16. 8.2.1概述 • (1)预定义对话框:预定义对话框是系统已经设计好的对话框,它们可以通过程序执行具体的函数来被显示。在Visual Basic 6.0中,预定义对话框包含输入对话框(用InputBox函数来实现)和消息框(用MsgBox函数来实现)。 • (2)自定义对话框:自定义对话框实际是一个用户自行设计的,用来完成用户和系统对话的窗体。 • (3)通用对话框:通用对话框是一种控件,通过CommonDialog控件,利用它能够很容易地创建六种标准对话框:打开(Open),另存为(Save As),颜色(Color),字体(Font),打印机(Printer)和帮助(Help)对话框。

  17. 1 自定义对话框 • 设计步骤 : • 1) 添加窗体: 工程添加窗体。 • 2) 将窗体定义成对话框风格。 • 如:不能移动、改变尺寸、最大或最小化 • 例: BorderStyle设置为1—单边框,不能改变大小 • ControlBox设置为False—删除控制菜单框 • MaxButton设置为False—删除最大化按钮 • MinButton设置为False—删除最小化按钮 • 3) 在对话框上添加按钮,如“确定”与“取消”按钮。 • 4) 在对话框上添加其它控件。 • 5) 在适当的位置编写显示对话框的代码。

  18. 两种显示方式: 模式对话框与无模式对话框 。 • 显示模式对话框 • 窗体名.Show vbModal 或 窗体名.Show 1 例如: Form2.Show vbModal • 显示无模式对话框 • 窗体名.Show vbModeless 或 • 窗体名.Show 0 或 窗体名.Show 例如: Form2.Show vbModeless • 为确保对话框可以随其父窗体的最小化而最小化,随其父窗体的关闭而关闭,需要在Show方法中定义父窗体。 例如: Private Sub Command1_Click() Form2.Show vbModeless, Form1 End Sub

  19. 6) 编写实现对话框功能的的代码,如“确定”按钮和“取消”按钮的单击事件过程。不同的对话框所完成的功能不同,因此应根据实际要求编写代码 7) 编写从对话框退出的代码 例如: Unload Form2 或: Form2.Hide Unload语句把对话框从内存中删除,该对话框本身以及它的控件都从内存中卸载。而Hide方法只是通过设置对话框的Visible属性为False将其从视窗中删除。该对话框以及它的控件仍留在内存中。

  20. 在窗体上添加一个通用对话框和一个“字体”命令按钮,当单击“字体”按钮时,就会弹出一个“字体”的对话框,对窗体上文本框中的文字设置字体。在窗体上添加一个通用对话框和一个“字体”命令按钮,当单击“字体”按钮时,就会弹出一个“字体”的对话框,对窗体上文本框中的文字设置字体。 • 操作步骤: • (1) 把CommonDialog控件添加到工具箱中。然后在窗体上添加该控件,其默认名称为CommonDialog1。 • (2)在窗体上添加一个命令按钮Command1,其Caption属性为“字体”。 • (3) 在窗体上添加一个文本框按钮Text1,用于输入文字。 • (4)输入“字体”命令按钮Command1的Click事件过程代码: • Private Sub Command1_Click() • CommonDialog1.Flags = 1 '对话框列出系统支持的屏幕字体 • CommonDialog1.ShowFont '显示“字体”对话框 • Text1.Font = CommonDialog1.FontName '用户在“字体”对话框中设置的字体作为文本框的字体 • End Sub

  21. 运行程序,在文本框中输入文字,单击“字体”按钮,结果如下图所示。运行程序,在文本框中输入文字,单击“字体”按钮,结果如下图所示。

  22. 2 通用对话框控件 • 使用通用对话框控件(CommonDialog)可以创建多种标准对话框。设计步骤如下: • 1) 添加: 工程部件选择 • “Microsoft Common Dialog Controls 6.0” • 2) 在窗体的任意位置添加通用对话框控件。 • 3) 设置通用对话框控件的“属性页”。 • 4) 在代码中使用以下方法打开对话框 。 • ShowOpen: 显示“打开文件”对话框 • ShowSave: 显示“文件存储”对话框 • ShowColor: 显示“颜色”对话框 • ShowFont: 显示“字体”对话框 • ShowPrinter: 显示“打印”对话框 • ShowHelp: 显示“帮助”对话框

  23. DialogTitle Flags DefaultExt FileName MaxFileSize InitDir Filter FilterIndex CancelError • 8.2.2文件对话框 • 属性页:

  24. Image1 Command1 CommonDialog1 例如:使用打开文件对话框,在运行时打开一幅图像。 在窗体Form1上放置一个图像控件、一个通用对话框控件、一个命令按钮。 设计界面:

  25. 其中, CommonDialog1的属性页设置如下: 指文件名 All files|*.*|Bmp Files|*.bmp|Icon Files|*.ico

  26. 如果通过编写代码设置属性,可以在窗体的Load事件过程中编写以下代码:如果通过编写代码设置属性,可以在窗体的Load事件过程中编写以下代码: Private Sub Form_Load() CommonDialog1.DialogTitle = "请选择图像文件" CommonDialog1.InitDir = "C:\winnt" CommonDialog1.FileName = "Greenstone.bmp" CommonDialog1.Filter = "All Files|*.*|Bmp Files|*.bmp|Icon Files|*.ico" CommonDialog1.CancelError = True End Sub

  27. “装入图像”按钮代码如下: Private Sub Command1_Click() CommonDialog1.ShowOpen Image1.Picture = _ LoadPicture(CommonDialog1.FileName) End Sub

  28. 在对话框中单击“取消”按钮的处理: • 不处理: 不设置“取消引发错误” • 处理: 设置“取消引发错误”,编写代码如下: • Private Sub Command1_Click() • On Error GoTo ErrHandler • CommonDialog1.ShowOpen • Image1.Picture = _ • LoadPicture(CommonDialog1.FileName) • Exit Sub • ErrHandler: • MsgBox "打开文件错误" • Exit Sub • End Sub 打开图像 取消

  29. 8.2.3其他对话框 颜色、字体对话框 属性页: 仅当标志属性设为8192时起作用 Min Max 颜色: Color 标志: Flags FontName FontSize 通常:257、258、259

  30. 8.3 多窗体程序设计与环境应用 • 简单Visual Basic应用程序通常只包括一个窗体,称为单窗体程序。在实际应用中,特别是对于较复杂的应用程序,单一窗体往往不能满足需要,必须通过多窗体( Multi-Form)来实现。在多窗体程序中,每个窗体可以有自己的界面和程序代码,完成不同的操作。 • 1.Load语句 • 2.Unload语句 • 3.Show方法 • 4.Hide方法

  31. 8.4 滚动条 • 在工具箱中,有水平滚动条图标和垂直滚动条图标。 • 这两种滚动条除了方向不同外,其功能和操作是一样的在滚动条两端各有一个滚动箭头,在滚动箭头之间有一个滚动块。滚动块从一端移至另一端时,其值在不断变化。垂直滚动条的最上端代表最小值,最下端代表最大值。

  32. 8.5 ActiveX控件 • 创建一个简单的ActiveX控件 • 操作步骤如下: • 1.新建ActiveX控件工程 • 2.设计ActiveX控件界面 • 3.为控件设计事件工程 • Private Sub Timer1_Timer() • Label1.Caption = Hour(Time) & "时" & Minute(Time) & "分" & Second(Time) & "秒" • End Sub • 程序中的Hour函数、Minute函数和Second函数用分别来显示当前时间的时、分、秒。

  33. 4.保存工程 • 选择“文件”菜单中的“保持工程”命令,系统先后弹出两个对话框,在对话框中系统给的默认文件名分别是:“电子表.ctl”与“ActiveX控件示例.vbp”。 • 5.测试“电子表”控件 • 现在测试一下刚做出的“电子表”控件。为了测试“电子表”控件,需要再添加一个“标准EXE”工程。

  34. 编译生成.ocx文件 • 选择把ActiveX控件工程(ActiveX控件示例)编译成.ocx文件,控件只有被编译成.ocx文件后才能被其他应用程序使用。 • 编译步骤如下: • (1)单击工程窗口中的“ActiveX控件示例”。 • (2)选择“文件”菜单中的“生成ActiveX控件示例.ocx”命令。 • 在弹出的“生成工程”对话框中保存文件到指定的文件夹,然后单击“确定”按钮,关闭该对话框。系统随即编译生成.ocx文件。

  35. (3)控件编译完成后,可在其他的VB程序中使用该控件。(3)控件编译完成后,可在其他的VB程序中使用该控件。 • (4)选择“工程”菜单中的“部件”命令以打开“部件”对话框,在“部件”对话框中选中“ActiveX示例”后再单击“确定”按钮 。 • (5)“电子表”控件的图标出现在工具箱中,现在可以像使用其他控件一样使用“电子表”控件。

  36. 创建ActiveX控件的一般步骤。 • (1)建立一个ActiveX控件工程。 • (2)在一个类似Form的UserContorl对象上设计控件界面。在UserContorl对象上可以加入现有的各种控件。 • (3)编写程序代码。 • (4)为控件添加属性、事件和方法。 • (5)建立属性页。属性页并不是一个控件必须要有的,但是建立属性页有助于控件的使用。 • (6)测试控件。建立一个“标准EXE”测试工程来测试控件。 • (7)编译成.ocx文件发布。

  37. 本章小结 • 1. Visual Basic中的菜单设计 下拉式菜单、弹出式菜单 • 2. Visual Basic中的对话框设计 • 自定义对话框、通用对话框

More Related