




已阅读5页,还剩60页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,界 面 设 计,本章要点: 菜单的设计 工具栏的设计 状态栏的设计 对话框的设计,第10章,2,10.1 菜单的设计,Windows环境下几乎所有的应用软件都通过菜单实现各种操作。菜单将应用程序的各种操作分组显示在界面上,用户可以方便地从菜单中选择执行各种功能。,两种基本菜单类型: 下拉式菜单 弹出式菜单,3,10.1.1 下拉式菜单,访问键,顶级菜单,快捷键,1. 下拉式菜单的结构,4,2. 菜单编辑器 菜单项: 看成控件,具有其属性、事件、方法。 菜单项也称为菜单控件。 菜单设计: 通过“菜单编辑器”完成。 首先使窗体成为当前窗体 使用以下方法打开菜单编辑器: 执行“工具”菜单下的“菜单编辑器”命令 单击标准工具栏的“菜单编辑器”按钮 从窗体快捷菜单中选择“菜单编辑器”命令 菜单编辑器结构: 属性区、编辑区、菜单列表区,5,6,【例10-1】设计菜单界面,如下图所示。下拉菜单中的子菜单项用于对文本框Text1设置字体、字号、文字颜色和文字效果。其中,效果子菜单下的各菜单项具有复选功能,设运行初始时各项前面没有符号,与文本框的初始状态一致。,各子菜单结构见P194,7,菜单编辑器设置如下表:,8,9,1) “字体”菜单下的菜单项设计成一个控件数组AA1,共享以下事件过程: Private Sub AA1_Click(Index As Integer) Text1.Font = AA1(Index).Caption End Sub,2) “字号”菜单下的菜单项设计成一个控件数组BB1,共享以下事件过程: Private Sub BB1_Click(Index As Integer) Text1.FontSize = Val(BB1(Index).Caption) End Sub,10,3) “颜色”菜单下的各菜单项为独立的菜单控件,因此应分别在其单击事件过程中编写代码,各事件过程如下: Private Sub CC1_Click() Text1.ForeColor = vbRed End Sub Private Sub CC2_Click() Text1.ForeColor = vbGreen End Sub Private Sub CC3_Click() Text1.ForeColor = vbBlue End Sub,11,4) “效果”菜单下的各菜单项具有复选功能,每次单击时应切换成另一种状态,因此要判断当前菜单项的Checked属性,各事件过程如下: Private Sub DD1_Click() If DD1.Checked = True Then Text1.FontStrikethru = False DD1.Checked = False Else Text1.FontStrikethru = True DD1.Checked = True End If End Sub,12,Private Sub DD2_Click() If DD2.Checked = True Then Text1.FontUnderline = False DD2.Checked = False Else Text1.FontUnderline = True DD2.Checked = True End If End Sub,13,Private Sub DD3_Click() If DD3.Checked = True Then Text1.FontBold = False DD3.Checked = False Else Text1.FontBold = True DD3.Checked = True End If End Sub,14,Private Sub DD4_Click() If DD4.Checked = True Then Text1.FontItalic = False DD4.Checked = False Else Text1.FontItalic = True DD4.Checked = True End If End Sub,15,【例10-2】在窗体上设计菜单,菜单标题为“图像”,图像菜单下包括以下4个菜单项: 1) 载入:名称为LoadPic,用于向图片框中装入一幅图像,初始的Enabled属性为True。 2) 清除:名称为ClearPic,用于清除图片框中的图像,初始的Enabled属性为False。 3) 显示:名称为ShowPic,用于显示图片框中的图像,初始的Enabled属性为False。 4) 隐藏:名称为HidePic,用于隐藏图片框中的图像,初始的Enabled属性为False。,16,运行时,界面的初始状态如图a,单击“载入”命令可以在打开的输入框中输入要载入的图像文件名,确定后将指定的图像显示在图片框Picture1中,这时的“图像”菜单变成图b的状态。这时如果选择“清除”命令,则清除图片框中的图片,菜单变成图a所示;如果选择“隐藏”命令,则隐藏图片框,菜单变成图c所示,而单击“显示”命令菜单又回到图b的状态。,17,各菜单项的Click事件过程如下: Private Sub ClearPic_Click() 清除 Picture1.Picture = LoadPicture() ClearPic.Enabled = False LoadPic.Enabled = True HidePic.Enabled = False ShowPic.Enabled = False End Sub,18,Private Sub Loadpic_Click() 载入 PicName = InputBox(“请输入图像文件名“) On Error GoTo ErrHandler Picture1.Picture = LoadPicture(PicName) ClearPic.Enabled = True LoadPic.Enabled = False HidePic.Enabled = True ShowPic.Enabled = False Exit Sub 正常执行则到这里结束 ErrHandler: 错误处理程序入口 MsgBox “图像加载错误“ End Sub,19,Private Sub HidePic_Click() 隐藏 Picture1.Visible = False ClearPic.Enabled = False LoadPic.Enabled = False HidePic.Enabled = False ShowPic.Enabled = True End Sub Private Sub ShowPic_Click() 显示 Picture1.Visible = True ClearPic.Enabled = True LoadPic.Enabled = False HidePic.Enabled = True ShowPic.Enabled = False End Sub,20,将本例对Enabled属性的设置改成对Visible属性的设置可以修改成将无效的菜单项隐藏起来,只显示可用的菜单项。 用前面的方法建立的菜单,菜单项是固定的,菜单项不能自动增减。尽管可以通过设置菜单项的Visible属性使某些菜单项暂时隐藏起来,在必要的时候再将其显示出来,但也必须首先在菜单编辑器中设计所有的菜单项。在某些情况下,菜单项的个数在设计时是不可预测的,只能在程序运行时动态增减,用前面的方法就难以实现。 要实现菜单项的动态增减,可以通过菜单数组来实现。通常,首先设计一个菜单项,定义该菜单项为菜单数组的第一项,即在菜单编辑器中,设置其“索引”属性值为0,“可见”属性为False(不可见)。在需要增加菜单项时,使用Load方法向该菜单数组增加新的菜单项,并对新增的菜单项设置标题(Caption)和可见(Visible)属性;在需要减少菜单项时,使用Unload方法从该菜单数组中删除一项。,21,【例10-3】设计菜单,使得运行时初始界面如下图a所示。主菜单项“文件”下有两个固定的子菜单项“打开”和“关闭”及分隔线。要求:运行时单击“打开”菜单项在分隔线下面增加一个新的菜单项,单击“关闭”命令时删除分隔线下面一个指定的菜单项。单击新增的菜单项可以执行相应的应用程序。,a),b),22,主要设计步骤: 1)执行“工具”菜单中的“菜单编辑器”命令,打开菜单编辑器,按下表设计菜单。,23,2)在窗体模块中定义模块级变量MenuNum,用于保存当前SubMenu菜单数组的最大下标: Dim MenuNum As Integer 3)编写“打开”菜单项的Click事件过程如下: Private Sub SubOpen_Click() OpenFileName = InputBox(“请输入文件名称“) If Trim(OpenFileName) “ Then MenuNum = MenuNum + 1 Load SubMenu(MenuNum) SubMenu(MenuNum).Caption = OpenFileName SubMenu(MenuNum).Visible = True End If End Sub,24,4)编写“关闭”菜单项的Click事件过程如下: Private Sub SubClose_Click() N = Val(InputBox(“请指定关闭第几个文件“) If N MenuNum Or N 1 Then MsgBox “超出范围!“ Else For I = N To MenuNum - 1 SubMenu(I).Caption = SubMenu(I + 1).Caption Next I Unload SubMenu(MenuNum) MenuNum = MenuNum - 1 End If End Sub,25,5)新增加的菜单项是一些应用程序的名字(包括路径)。要实现单击这些菜单项时能够执行相应的文件名指定的应用程序,需要在菜单数组的Click事件过程中应编写如下代码: Private Sub SubMenu_Click(Index As Integer) Shell SubMenu(Index).Caption, vbNormalFocus End Sub,26,10.1.2 弹出式菜单,弹出式菜单:上下文菜单、快捷菜单、右键菜单 为某对象设计弹出式菜单的步骤: 1) 在菜单编辑器中设计各菜单项,然后将顶级菜单设置为不可见。 2) 在对象的MouseDown事件过程中编写代码,用以下的PopupMenu方法显示弹出式菜单: .PopupMenu ,flags,x,y,boldcommand 功能: 在当前鼠标位置或指定的坐标位置显示弹出式菜单。,27,参数: :指菜单所在的位置,如果省略,则默认为是当前窗体。 :指在菜单编辑器中设计的菜单项(至少有一个子菜单)的名称。 Flags:可选项,可以是一个数值或常量,用于指定弹出式菜单的位置和行为,取值见P199表10-3和表10-4。如果要同时指定位置和行为时,则将两个参数值用Or连接,如: 4 Or 2 x、y:指定显示弹出式菜单的x坐标和y坐标。省略时为鼠标坐标。 boldcommand:指定弹出式菜单中要显示为黑体的菜单控件的名称。如果该省略参数,则弹出式菜单中没有以黑体字出现的菜单项。,28,【例10-4】在例10-1的基础上设计窗体和文本框的弹出式菜单。如下图所示。,窗体的 弹出式菜单,文本框的 弹出式菜单,29,设计步骤: 1) 在菜单编辑器上增加以下设置:,30,2) 在文本框的MouseDown事件过程中编写代码 Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then PopupMenu EE, 0 Or 0 End If End Sub,参数Button: 1 按下鼠标的左按钮 2 按下鼠标的右按钮 4 按下鼠标的中间按钮,左上角位于坐标处,只接受左键单击,31,3) 在窗体的MouseDown事件过程中编写代码 Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then PopupMenu FF,8 Or 0, , ,FF3 End If End Sub,右上角位于坐标处,FF3菜单项显示为粗体,只接受左键单击,x,y省略,但要保留逗号,32,4) 在窗体模块的通用声明段声明变量Fcolor,用于保存窗体的初始颜色: Dim Fcolor As Long 5) 在窗体的Load事件过程中保存窗体的初始背景颜色: Private Sub Form_Load() Fcolor = Form1.BackColor End Sub,33,6) 编写实现菜单命令功能的代码 Private Sub EE1_Click() Text1.FontSize = Text1.FontSize + 1 End Sub Private Sub EE2_Click() Text1.FontSize = Text1.FontSize 1 End Sub Private Sub EE3_Click() If EE3.Caption = “锁定“ Then EE3.Caption = “取消锁定“ Text1.Locked = True Else EE3.Caption = “锁定“ Text1.Locked = False End If End Sub,34,Private Sub FF1_Click() Form1.BackColor = vbRed End Sub Private Sub FF2_Click() Form1.BackColor = vbGreen End Sub Private Sub FF3_Click() Form1.BackColor = Fcolor End Sub,35,10.2 工具栏的设计,作用: 常用于提供对最常用的菜单命令的快速访问 设计: 手工方式;使用工具栏控件 10.2.1 用手工方式制作工具栏 1) 在窗体上放置一个图片框,设置其Align属性为: 1 - Align Top,调整好图片框的高度。 2) 在图片框中放置控件。 3) 给控件装入一定的图片。 4) 设置控件的ToolTipText属性,添加适当的提示。 5) 为各工具栏控件编写代码。 如果工具栏控件的功能已经包括在某菜单项中,则可以直接调用菜单项的相应事件过程 。,36,【例10-5】在例10-4的基础上添加工具栏。如下图。 放置4个复选框控件,分别用于完成“效果”菜单 下的四个功能。 给复选框的ToolTipText属性分别设置功能提示: 删除线、下划线、粗体、斜体。,37,分别在复选框控件的Click事件过程中编写代码: Private Sub Check1_Click() Text1.FontStrikethru = Check1.Value End Sub Private Sub Check2_Click() Text1.FontUnderline = Check2.Value End Sub Private Sub Check3_Click() Text1.FontBold = Check3.Value End Sub Private Sub Check4_Click() Text1.FontItalic = Check4.Value End Sub,38,10.2.2 使用ToolBar控件制作工具栏,设计步骤: 1) 向工具箱添加ToolBar控件、 ImageList控件。 工程部件 选择 “Microsoft Windows Common Controls 6.0” 2) 向窗体上添加ToolBar控件、ImageList控件, 常用ImageList控件提供工具栏所需的图片。 3) 设置ImageList控件的“属性页” ,定义图像集。 4) 设置ToolBar控件的“属性页”。定义按钮对象集。引用索引号为n的按钮: Buttons(n) 例:设置Toolbar1中索引号为3的按钮的标题。 Toolbar1.Buttons(3).Caption = “显示“ 5) 编写代码: 在ButtonClick事件过程或ButtonMenuClick事件过程中编写。,39,【例10-6】用Toolbar控件设计工具栏,界面如下图所示,运行时,当按下箭头按钮时,图形将沿着箭头指定的方向移动,当按下形状按钮组中的任何一个按钮时,图形将变成相应的形状。按“Stop”按钮停止移动。,40,设置ToolBar控件的属性页:,41,Dim Direction As Integer Direction做为移动方向的标志 Private Sub Timer1_Timer() 根据箭头按钮决定移动方向 设每次移动步长为50Twips,当移动到窗体边缘时不再移动 Select Case Direction Case 1 如果选择向上移动 If Shape1.Top-50Toolbar1.Height _ Then Shape1.Top= Shape1.Top - 50 Case 2 如果选择向下移动 If Shape1.Top+Shape1.Height+50 0 Then Shape1.Left=Shape1.Left - 50 Case 4 如果选择向右移动 If Shape1.Left+Shape1.Width+50 Form1.ScaleWidth _ Then Shape1.Left = Shape1.Left + 50 End Select End Sub,代码如下:,42,Private Sub Toolbar1_ButtonClick _ (ByVal Button As MSComctlLib.Button) 根据按下的形状按钮分情况进行处理 Select Case Button.Index Case 1 Shape1.Shape = 3 设图形形状为圆形 Case 2 Shape1.Shape = 2 设图形形状为椭圆 Case 3 Shape1.Shape = 4 设图形形状为圆角矩形 Case 4 Shape1.Shape = 0 设图形形状为矩形,43,Case 6 Direction = 1 Direction为1表示上移 Timer1.Enabled = True Case 7 Direction = 2 Direction为2表示下移 Timer1.Enabled = True Case 8 Direction = 3 Direction为3表示左移 Timer1.Enabled = True Case 9 Direction = 4 Direction为4表示右移 Timer1.Enabled = True Case 11 单击“停止”按钮关闭定时器,停止移动 Timer1.Enabled = False End Select End Sub,44,10.3 对话框的设计,对话框: 特殊类型的窗体对象。 作用: 是用户和应用程序交互的主要途径。 建立方法: 使用预定义对话框,即输入框、消息框。 定义对话框。 使用CommonDialog控件创建通用对话框。,45,10.3.1 自定义对话框,设计步骤 : 1) 添加窗体: 工程添加窗体。 2) 将窗体定义成对话框风格。 如:不能移动、改变尺寸、最大或最小化 例: BorderStyle设置为1单边框,不能改变大小 ControlBox设置为False删除控制菜单框 MaxButton设置为False删除最大化按钮 MinButton设置为False删除最小化按钮 3) 在对话框上添加按钮,如“确定”与“取消”按钮。 4) 在对话框上添加其它控件。 5) 在适当的位置编写显示对话框的代码。,46,两种显示方式: 模式对话框与无模式对话框 。 显示模式对话框 窗体名.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,47,6) 编写实现对话框功能的的代码,如“确定”按钮和“取消”按钮的单击事件过程。不同的对话框所完成的功能不同,因此应根据实际要求编写代码 7) 编写从对话框退出的代码 例如: Unload Form2 或: Form2.Hide,Unload语句把对话框从内存中删除,该对话框本身以及它的控件都从内存中卸载。而Hide方法只是通过设置对话框的Visible属性为False将其从视窗中删除。该对话框以及它的控件仍留在内存中。,48,【例10-7】设计应用程序,包含一个主菜单界面和一个对话框,在主菜单界面单击某“运行”菜单项,将打开一个模式对话框,在对话框中指定要运行的文件名及其运行方式(正常、最大化、最小化),单击“确定”按钮按指定的方式运行指定的文件,如果输入文件名错误,将给出警告并返回该对话框;单击“取消”按钮返回主菜单界面。,a),b),49,设计步骤: 1) 新建一个空白工程,将当前窗体Form1作为主菜单界面,按设计下拉式菜单的方法设计菜单(如图a)。设“运行”菜单项的名称为RunFile 2) 使用“工程”菜单下的“添加窗体”命令,在工程中添加一个窗体Form2,设置Form2的BorderStyle属性值为1,使其具有对话框风格。如图b所示在对话框上添加各控件。将“确定”按钮的Defalut属性设置为True,将“取消”按钮的Cancel属性设置为True。 3) 编写窗体Form1的“运行”菜单项的Click事件过程,以显示对话框Form2,代码如下: Private Sub RunFile_Click() Form2.Show 1 End Sub,50,4) 编写对话框Form2的“确定”按钮的事件过程: Private Sub Command1_Click() “确定”按钮 On Error GoTo ErrorHandler FName = Trim(Text1.Text) If Option1.Value = True Then Shell FName, 1 If Option2.Value = True Then Shell FName, 3 If Option3.Value = True Then Shell FName, 2 Exit Sub ErrorHandler: 错误处理程序入口 MsgBox “不能运行该文件“, , “注意“ End Sub,51,5)编写对话框Form2的“取消”按钮的事件过程: Private Sub Command2_Click() Unload Me End Sub,52,10.3.2 通用对话框,使用通用对话框控件(CommonDialog)可以创建多种标准对话框。设计步骤如下: 1) 添加: 工程部件选择 “Microsoft Common Dialog Controls 6.0” 2) 在窗体的任意位置添加通用对话框控件。 3) 设置通用对话框控件的“属性页”。 4) 在代码中使用以下方法打开对话框 。 ShowOpen: 显示“打开文件”对话框 ShowSave: 显示“文件存储”对话框 ShowColor: 显示“颜色”对话框 ShowFont: 显示“字体”对话框 ShowPrinter: 显示“打印”对话框 ShowHelp: 显示“帮助”对话框,53,1.文件对话框 属性页:,54,【例10-8】使用打开文件对话框,在运行时打开一幅图像。 在窗体Form1上放置一个图像控件、一个通用对话框控件、一个命令按钮。,设计界面:,55,其中, CommonDialog1的属性页设置如下:,All files|*.*|Bmp Files|*.bmp|Icon Files|*.ico,指文件名,56,如果通过编写代码设置属性,可以在窗体的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,57,“装入图像”按钮代码如下: Private Sub Command1_Click() CommonDialog1.ShowOpen Image1.Picture = _ LoadPicture(CommonDialog1.FileName) End Sub,58,在对话框中单击“取消”按钮的处理: 不处理: 不设置“取消引发错误” 处理: 设置“取消引发错误”,编写代码如下: Private Sub Command1_Click() On Error GoTo ErrHandler CommonDialog1.ShowOpen Image1.Picture = _ LoadPicture(CommonDialog1.FileName) Exit
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Unit 2 Section A 3a-3c说课稿 2024-2025学年人教版八年级英语下册
- 第4章 《利用正比例函数与一次函数的定义求字母参数值》 说课稿 -2024-2025学年北师大版八年级数学上册
- 装配式建筑项目的施工组织与管理策略
- 空间规划与碳排放监测技术协同发展路径
- 工程管理考试题及答案解析
- 《2025合同法下违约金适用的实务指南》
- 高级幼师考试题目及答案
- 2025仿真树木护栏购销合同
- 赣州地理中考试题及答案
- 2025年出国留学人员的合法权益应依法保障-该案合同是学习合同还是服务合同
- 2025至2030中国视觉点胶机市场运行状况与未来发展走势预测报告
- 雀巢牛奶购销合同范本
- 4.1夯实法治基础教学设计 2025-2026学年度九年级上册 道德与法治 统编版
- 连铸工岗位操作规程考核试卷及答案
- 2025兵团普通职工考试试题及答案
- 《中国老年危重患者营养支持治疗指南(2023)》解读 4
- 2025年广东国家公务员申论考试真题及答案-地市级
- 格拉斯哥(GCS)昏迷评估量表(详xi操作)
- 肝硬化患者健康宣教知识
- 医院检验科实验室生物安全管理手册
- 英语考级-a级词汇完整版
评论
0/150
提交评论