VisualBasic实用教程 薛亮 第8章.ppt

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第8章 菜单的设计和MDI程序设计
2.MDI窗体上控件的设置 为了把其它的控件放入MDI窗体,应该先在MDI窗体上绘 制一个PictureBox图片框,然后在图片框中绘制其它控件。可 以在MDI窗体的图片框中使用Print方法显示文本,但是不能在 MDI窗体上显示文本。
第8章 菜单的设计和MDI程序设计
第8章 菜单的设计和MDI程序设计
(10) “有效(Enabled)”检查框,该检查框决定菜单项是否可 选(有效)。当该检查框被选中,表示菜单项的Enabled属性为 True,程序执行时菜单项高亮度显示,是可选的;如果没有被 选中,即Enabled属性为False,在程序执行时该菜单项变成灰 色,不能被用户选择。
(1) “标题(Caption)”文本框,让用户键入显示在窗体上的菜 单标题,键入的内容会在菜单编辑器窗口的下边空白部分显示 出来,该区域称为菜单显示区域。如果输入时在菜单标题的某 个字母前输入一个&符号,那么该字母就成了热键字母,在窗 体上显示时该字母有下划线,操作时同时按Alt和该带有下划线 的 字 母 就 可 选 择 这 个 菜 单 项 命 令 。 例 如 , 建 立 文 件 菜 单 File 在 “标题”文本框内应输A&File, 程序执行时用Alt+F就可以选择 File菜单。
设计快捷菜单仍然使用Visual Basic提供的菜单编辑器,只 要把某个菜单设置成隐藏Visible属性为False就可以了。实际上, 不管是在窗口顶部菜单条上显示的菜单,还是隐藏的菜单,都 可以用PopupMenu方法把它们作为快捷菜单在程序运行期间显 示出来。
第8章 菜单的设计和MDI程序设计
(4) “下一个(Next)”按钮,当用户把一个菜单项的各个属性 设置完以后,选择此按钮,即的设计和MDI程序设计
(5) “←”和“→”按钮,菜单层次的选择按钮。若建立好 一个菜单项后按“→”按钮,则该菜单项在显示框中向右移一 段,前面加“...”表示该菜单项为下一级的菜单项。如果选定了 某菜单项后,再按“←”按钮,前面的省略号将取消,表示该 菜单项是上一级的菜单项。
第8章 菜单的设计和MDI程序设计
8.2 多文档界面(MDI)
8.2.1 创建MDI窗体及其子窗体 1.创建MDI窗体 用户要建立一个MDI窗体,可以选择“工程”菜单中的
“添加MDI窗体”命令,在弹出的“添加MDI窗体”对话框中, 选择“MDI窗体”,再选择“打开”按钮。需要注意的是,一 个应用程序只能有一个MDI窗体,但是可以有多个MDI子窗体。 如果MDI子窗体有菜单,那么,当MDI子窗体为活动窗体时, 子窗体的菜单将自动取代MDI窗体的菜单。
第8章 菜单的设计和MDI程序设计
【例8-2】 我们让前面设计的“计算2”菜单,在程序运行 时作为快捷菜单显示出来。
首先,按前面介绍的方法设计“计算2”菜单。其Visible属 性可以设置成True或False。然后,编写如下的事件过程:
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then PopupMenu Cal1, 2
End If End Sub
程序运行后,单击鼠标右键(Button=2),立即弹出Call菜单,如 图8.3 所示。
第8章 菜单的设计和MDI程序设计
图8.3 弹出菜单的显示 一般来说,用户应将经常使用的命令如Close、Clear命令组 成一个快捷菜单,以便于使用。
(6) “插入(Insert)”按钮,在选定的菜单项前插入一个菜单项。
(7) “删除(Delete)”按钮,删除选定的菜单项。
(8) “↑”和“↓”按钮,用于改变菜单项排列的位置。
(9) “复选(Checked)”检查框,如果在显示框中选定了某个菜 单项,再选定“Checked”检查框,那么当前被选定的菜单项左 边加上了一个检查标记“√”,表示该菜单项是一个被选项。
(11) “可见(Visible)”检查框,该检查框决定菜单项是否可 见。若该检查框未被选中,表示该菜单项的Visible属性为 False,程序执行时不可见。
第8章 菜单的设计和MDI程序设计
(12) “协调位置(Negotiate Position)”下拉列表框,通过这一 下拉列表框,可以确定菜单或菜单项在窗体中是否出现或怎样 出现。下拉列表框中共有4个选项。
图8.1 设计界面
第8章 菜单的设计和MDI程序设计
(3) 在菜单建立好以后,编写下列事件过程。 Dim iMenucount As Integer '该变量须在窗体层说明 ' 菜单项Add的单击事件 Private Sub Add_Click( ) X = Val(txtNo1.Text) + Val(txtNo2.Text) lblDisplayResult.Caption = Str$(X) End Sub
0—None:菜单项不显示; 1—Left:菜单项左显示; 2—Middle:菜单项中显示; 3—Right:菜单项右显示。
第8章 菜单的设计和MDI程序设计
(13) “帮助上下文ID(Help Context ID)”文本框,可以通过 键入一个数值,在帮助文件(用HelpFile属性设置)中查找相应 的帮助主题。
第8章 菜单的设计和MDI程序设计
' 表单单击事件装入新菜单项
Private Sub Form_Click( )
If iMenucount = 0 Then
iMenucount = iMenucount + 1
Load Namearray(iMenucount)
' 装入新菜单项
Namearray(iMenucount).Caption = "平方和"
第8章 菜单的设计和MDI程序设计
(2) “名称(Name)”文本框,由用户输入菜单项的名称,它 不会显示出来,在程序中用来标识该菜单项。在“标题”文本 框中输入了一个菜单标题,在“名称”文本框中应有一个对应 的菜单名称。分界符也要有对应的名称。
(3) “快捷键(Shortcut Key)”下拉列表框,列出了很多快捷 键,供用户为菜单项选择一个快捷键。菜单项的快捷键可以不 要,但如果选择了快捷键,则会显示在菜单标题的右边。在程 序运行时,用户按快捷键同样可完成选择该菜单项并执行相应 命令的操作。
End Sub
第8章 菜单的设计和MDI程序设计 (4) 运算结果如图8.2所示
图8.2 菜单示例运行结果
第8章 菜单的设计和MDI程序设计
4.弹出菜单
Visual Basic允许出现快捷菜单,这为用户提供了很大的方 便。一般来说,菜单都在窗口的顶部。有时用户需要执行菜单 中的某一命令,就得把鼠标指针移到窗口顶部打开菜单,再选 择命令,这对用户来说,会觉得很麻烦。而快捷菜单并不需要 到窗口顶部来打开,只要单击鼠标的右键就会弹出。
(3) 建立事件过程代码。在菜单建立好以后,还需要相应 的事件过程。
第8章 菜单的设计和MDI程序设计
3.单项的动态增减
应 用 程 序 的 菜 单 应 设 计 成 像 Windows 程 序 管 理 器 中 Window菜单一样,能够在执行时随着程序的变化动态地增减 菜单中的菜单项。菜单项增减是利用控件数组来实现的。
Loop End Sub
' 删除菜单
第8章 菜单的设计和MDI程序设计
Namearray_Click是这些新增菜单项的共用事件过程。当 用户选择“平方和”命令时,参数Index的值是1,选择“立方 和”命令时,Index的值是2。
Private Sub Namearray_Click(Index As Integer) X = Val(txtNo1.Text) ^ (Index + 1) + Val(txtNo2.Text) ^ (Index + 1) lblDisplayResult.Caption = Str$(X)
3.子窗体 MDI子窗体是一个MDIChild属性为True的普通窗体。因 此,要创建一个MDI子窗体,应先创建一个新的普通窗体, 然后将它的MDIChild属性置为True。MDI子窗体的设计与 MDI窗体无关,但在运行时总是包含在MDIForm中。
第8章 菜单的设计和MDI程序设计
【例8-3】 建立多文档界面。
首先用“工程”菜单中的“添加MDI窗体”和“添加窗体” 命令建立一个MDI窗体和两个普通窗体设置。
MDI窗体上有一个“窗体”菜单,其中有三个命令:窗口、 子窗体1(Show_frmMDIChild1)和子窗体2(Show_frmMDIChild2), 后二者分别用于显示子窗体1和子窗体2。菜单窗口下面实现了 三个功能:层叠、平铺和排列图标。MDI窗体如图8.4所示。
Namearray(iMenucount).Visible = True
iMenucount = iMenucount + 1
Load Namearray(iMenucount)
' 装入新菜单项
Namearray(iMenucount).Caption = "立方和"
Namearray(iMenucount).Visible = True
(14) “显示窗口列表(Window List)”检查框,决定菜单控件 上是否显示所打开的子窗体标题。该检查框仅对MDI窗体和 MDI子窗体有效,对普通窗体无效。
第8章 菜单的设计和MDI程序设计 2.单设计过程
建立菜单大致可分成三个步骤:
(1) 建立控件。
(2) 设计菜单。在窗口上的控件建立以后,我们就设计菜 单。在设计状态下选择“工具”菜单下的菜单编辑器(Ctrl+E) 命令,出现“菜单设计”窗口。在“菜单设计”窗口中,对每 一个菜单项输入标题、控件名称和相应的快捷键。当完成所有 输入工作后,选择“确定”按钮,就完成了整个菜单的设计工 作。
PopupMenu方法的使用形式如下: [对象.] PopupMenu 菜单名,标志,x,y 说明: (1) x,y是快捷菜单显示的位置。 (2) 标志指定快捷菜单的行为。当标志为0时,快捷菜单中 的项只能对鼠标左键有反应。当标志为2时,快捷菜单中的项 对鼠标左键和右键都有反应。标志为2时PopupMenu方法只能用 在MouseDown事件过程。
【例8-1】 下面以一个简单的实例来说明菜单设计的步骤。 我们以前面设计的菜单为基础,增加菜单项增减功能。当用户 在窗体上单击时,在“计算2”菜单中增加“平方和”和“立方 和”两条命令。当用户在窗体上双击时,在“计算2”菜单中删 除这两个命令。
第8章 菜单的设计和MDI程序设计
(1) 在菜单设计窗口中,按表8.1输入各菜单项的标题、 控件名称和快捷键。另外,菜单项Namearray的Index属性设 为0,Visible属性设为False(不可见)。
表8.1 菜单项的属性设置
菜单项 计算 1 …加法 …减法 计算 2 …乘法 …除法 …清除 …
名称 Cal1 Add Sub Cal2 Div Mul Clean Namearray
快捷键 空白 Ctrl+A Ctrl+D 空白 Ctrl+C Ctrl+D Ctrl+E 空白
第8章 菜单的设计和MDI程序设计 (2) 窗体设计界面如图8.1所示。
End If
End Sub
第8章 菜单的设计和MDI程序设计
' 表单双击事件删除装入的菜单项 Private Sub Form_DblClick( ) Dim i As Integer
Do While iMenucount > 0 Unload Namearray(iMenucount) iMenucount = iMenucount - 1
第8章 菜单的设计和MDI程序设计
第8章 菜单的设计和MDI程序设计
8.1 菜单的设计 8.2 多文档界面(MDI) 8.3 工具栏 8.4 对话框 习题八
第8章 菜单的设计和MDI程序设计
8.1 菜 单 的 设 计
1.菜单编辑器窗口的用法
菜单编辑器主要分为三个部分:菜单按键属性区、编辑区 和菜单显示区。下面详细介绍菜单编辑器的各部分功能。
相关文档
最新文档