VB菜单和窗体.ppt_第1页
VB菜单和窗体.ppt_第2页
VB菜单和窗体.ppt_第3页
VB菜单和窗体.ppt_第4页
VB菜单和窗体.ppt_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第10章 菜单和工具栏,10.1 菜单设计 10.2 创建工具栏 10.3 Windows界面样式及创建SDI程序界面 10.4 创建MDI程序界面,10.1 菜单设计,10.1.1 菜单组成 10.1.2 菜单编辑器 10.1.3 下拉菜单的设计 10.1.4 弹出式菜单 10.1.5 菜单控件数组,返回目录,10.1.1 菜单组成,在Windows环境下,菜单分为下拉式菜单和弹出式菜单。 下拉式菜单的菜单条显示在窗体标题栏的下面,它含有一个或者多个菜单标题。当单击某一菜单标题时,将打开一个含有菜单项的列表。菜单项也可以是子菜单标题,当单击子菜单标题时,将显示其下的子菜单项。分隔条用于将菜单

2、项按功能分组。 弹出式菜单又称为“上下文菜单”或“快捷菜单”,是一种可以显示在窗体任何位置并独立于菜单栏的浮动式菜单。一般通过在某一区域单击鼠标右键的方式激活特定的弹出式菜单。鼠标单击的区域不同,弹出的菜单内容一般也不同。,10.1.2 菜单编辑器,可以通过以下几种方式启动菜单编辑器: (1)执行“工具”菜单中的“菜单编辑器”命令。 (2)单击工具栏中的“菜单编辑器”按钮。 (3)在要建立菜单的窗体空白处右击鼠标,在快捷菜单中选择“菜单编辑器”命令。,10.1.2 菜单编辑器,10.1.2 菜单编辑器,1. 菜单控件区 菜单控件区用来设置菜单控件的属性。 (1)标题:设置菜单控件的Captio

3、n属性,其值是显示在菜单中的文本。如果要在菜单中加入一条分隔线,则只需输入减号(-)即可;如果要为菜单控件指定访问键,则在作为访问键的字符前面加一个“&”字符。程序运行时该字符下端会出现下划线,使用Alt+字符即可打开菜单或执行相应的菜单命令。 (2)名称:设置菜单控件的Name属性,在程序代码中用于访问该菜单控件。建议使用mnu作为前缀来标识是菜单控件。 (3)索引:设置菜单控件数组中各元素的下标。,10.1.2 菜单编辑器,(4)快捷键:设置快捷访问键,使用户在不打开菜单的情况下就可以通过键盘操作实现同样的功能。 (5)复选:设置菜单控件的Checked属性,决定是否在菜单控件前面出现复选

4、标记(),以便表示菜单控件的开关状态。 (6)有效:设置菜单控件的Enabled属性,决定菜单控件是否可用。如果清除“有效”复选框,则Enabled属性值为False,此时相应的菜单控件将变成无效,以灰色显示。它既不能响应Click事件,也无法用快捷键访问。如果某一菜单标题无效,则其下的所有菜单项都将无效。,10.1.2 菜单编辑器,(7)可见:设置菜单控件的Visible属性,决定菜单控件是否可见。如果清除“可见”复选框,则Visible属性值为False,该菜单控件不可见。当菜单控件不可见时,菜单中的其余控件会上移以填补空出的位置;如果控件位于菜单条上,则菜单条上其余的控件会左移以填补相应

5、的空间。菜单控件不可见时,还会导致其无效;如果菜单标题不可见,则其下的所有菜单项均无效。,10.1.2 菜单编辑器,2. 菜单项显示区 菜单项显示区列有当前窗体的所有菜单控件,并通过它们所在的位置显示出对应的层次关系。可通过鼠标单击选中某个菜单控件,此时上端的菜单控件区显示的即为该菜单控件的对应属性。 (1)位于列表框中与左侧边框平齐的菜单控件将作为菜单标题显示在菜单条中。 (2)前面有一个内缩符号(.)的菜单控件是前导菜单标题的菜单项。 (3)前面有二个内缩符号(.)的菜单控件是前导菜单项的子菜单项,前导菜单项又称为子菜单标题。依此类推。,10.1.2 菜单编辑器,3. 编辑区 编辑区用来对

6、当前选中的菜单控件进行编辑。 (1)、:取消或产生内缩符号,从而改变菜单控件在菜单中的层次级别。 (2)、:改变菜单控件在菜单中的位置。 (3)下一个:选中当前菜单控件的下一个菜单控件。 (4)插入:在当前菜单控件的上方加入一个新的菜单控件。 (5)删除:删除当前选中的菜单控件。,10.1.3 下拉菜单的设计,【例10-1-1】 设计一个具有算术运算(、)及清除功能的菜单。通过键盘输入两个数,利用菜单命令计算出它们的和、差、积、商,并显示出来。要求每个菜单命令都有对应的快捷键。 (1)设计用户界面 (2)菜单设计:根据题意,建立两个菜单标题,分别完成设置和计算功能。“设置”菜单中含有清除和退出

7、两个菜单项;“计算”菜单中含有加法、减法、乘法和除法四个菜单项。,Private Sub cheng_Click() Label1.Caption = cheng.Caption Text3.Text = Val(Text1.Text) * Val(Text2.Text) End Sub Private Sub chu_Click() Label1.Caption = chu.Caption Text3.Text = Val(Text1.Text) / Val(Text2.Text) End Sub Private Sub jia_Click() Label1.Caption = jia.Ca

8、ption Text3.Text = Val(Text1.Text) + Val(Text2.Text) End Sub Private Sub jian_Click() Label1.Caption = jian.Caption Text3.Text = Val(Text1.Text) - Val(Text2.Text) End Sub,10.1.3 下拉菜单的设计,(3)编写Click事件过程:如果希望单击某个菜单项就可以执行对应的操作,需要编写菜单控件的Click事件过程,这是除分隔条以外其它菜单控件唯一可以识别的动作。当用户单击菜单标题时,通常是将其下的菜单项显示出来,所以可以不必为菜

9、单标题的Click事件过程编写代码。 首先,关闭菜单编辑器,在窗体上显示所创建的菜单。从窗体上选择一个菜单控件,将在代码编辑器中显示相应的Click事件过程,等待输入程序代码。,10.1.4 弹出式菜单,弹出式菜单可以根据单击鼠标右键时的位置灵活改变弹出的菜单内容,使用户操作更快捷,所以弹出式菜单又称为快捷菜单。任何至少有一个菜单项的菜单,都可以在运行时作为弹出式菜单来显示,弹出式菜单的设计也是使用菜单编辑器,如果弹出式菜单不需要显示在菜单条中,则需要将顶级菜单项设置成隐藏。创建弹出式菜单的步骤如下: (1)使用菜单编辑器设计菜单。 (2)设置顶层菜单项为隐藏,即不选中菜单编辑器里的“可见”选

10、项。,创建弹出式菜单,创建弹出式菜单,按Ctrl+E键,弹出菜单编辑器。在那里面可以编辑菜单。标题:等同于Command的Caption属性,就是用来显示菜单上的文字。名称:等同于Command的Nane属性,指定菜单的名称。索引:菜单数组的下标。复选:以复选框的样式显示菜单。有效:Enabled可见:Visible先输入菜单第一项的标题文件和名称file,按你的要求,程序运行时不显示,那么就把它的可见勾上。再输入菜单第二项的标题打开和名称open,因为它是在文件菜单的下一级,所以按一下按钮最后输入菜单第三项的标题保存和名称save,不用按按按钮.确定完成菜单的编辑.,创建弹出式菜单,调出菜单

11、.Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button = 2 Then PopupMenu file 1为左键,2为右键 PopupMenu 弹出菜单End Sub 点击代码窗口中控件下拉列表,选择save 或 open 可以对它们进行事件的编程,10.1.4 弹出式菜单,(3)编写与弹出式菜单相关联的MouseUp(释放鼠标)或MouseDown(按下鼠标)事件过程。其中必须使用PopupMenu方法,PopupMenu方法语法格式为: 对象名.P

12、opupMenu , flags,x,y,boldcommand 对象名.表示要显示弹出式菜单的窗体名称,默认为当前窗体。 参数是要显示的弹出式菜单名称。 参数flags定义弹出式菜单的位置,可指明位置常数与行为常数。位置常数和行为常数分别如表10-1-3和表10-1-4所示。如果要同时指定这两个常数,可用逻辑运算符or进行组合,如4 or 2。,10.1.4 弹出式菜单,(4)参数x 与y定义弹出式菜单相对于指定窗体的显示位置。若省略,则显示在鼠标指针的当前位置。 (5)参数boldcommand用于指定在弹出式菜单中要以粗体显示的菜单控件的名称。若省略,则菜单中没有以粗体显示的菜单控件。

13、注意:显示弹出式菜单后,用户必须从菜单中进行选择或者取消菜单,否则调用Popupmenu方法后的代码不会执行。,10.1.5 菜单控件数组,与控件数组类似,菜单控件数组是指同一菜单上共享相同名字与事件过程的一个或者多个菜单项。 菜单控件数组中的每个元素都由唯一的索引值来标识,索引值由Index属性确定。 Index属性值可以从菜单编辑器的“索引”文本框来指定。 当菜单控件数组的某个元素识别Click事件时,系统将其索引值作为参数传递给Click事件过程。 Click事件过程根据传进来的索引值判断出选中的是哪一个菜单项。 注意:菜单控件数组中的各个元素在菜单项显示区中必须是连续的,而且必须是在同

14、一缩进级上。若含有分隔条,则它也要作为数组元素包含到菜单控件数组中。,Private Sub js_Click(Index As Integer) Select Case Index Case 1 Label1.Caption = js(Index).Caption Text3.Text = Val(Text1.Text) + Val(Text2.Text) Case 2 Label1.Caption = js(Index).Caption Text3.Text = Val(Text1.Text) - Val(Text2.Text) Case 3 Label1.Caption = js(Ind

15、ex).Caption Text3.Text = Val(Text1.Text) * Val(Text2.Text) Case 4 Label1.Caption = js(Index).Caption Text3.Text = Val(Text1.Text) / Val(Text2.Text) End Select End Sub,10.2 创建工具栏,10.2.1 ImageList控件 10.2.2 ToolBar控件,返回目录,10.2.1 ImageList控件,要在窗口中加入工具栏,需要用到ToolBar控件和ImageList控件。通常情况下,这两个控件并没有显示在工具箱中,需要用

16、户手动将它们添加到工具箱中。方法如下: (1)从“工程”菜单中选取“部件”命令,打开“部件”对话框。 (2)在“部件”对话框的“控件”选项卡中,选中“Microsoft Windows Common Controls 6.0”,使它前面的复选框中出现“”,如图10-2-1所示。 (3)单击“确定”按钮,此时一些常用控件就被加入到工具箱中,其中包括ToolBar控件和ImageList控件。,10.2.1 ImageList控件,ImageList控件用于存放需要在工具栏上显示的按钮图片。使用方法: (1)在窗体中添加一个ImageList控件。其大小固定,运行时不可见。 (2)右击ImageL

17、ist控件,选择“属性”,打开“属性页”对话框。 (3)选择“图像”选项卡,单击“插入图片”按钮,逐个向ImageList控件中加入图片;如果需要删除多余的图片,选中后点击“删除图片”按钮。,10.2.2 ToolBar控件,使用ToolBar控件具体创建一个工具栏。首先在窗体中添加一个ToolBar控件,右击后选择“属性”,打开“属性页”对话框。 1. 设置ToolBar控件的通用属性 点击“通用”选项卡:将“图像列表”属性设置为前面已创建的ImageList控件,这样可以使用ImageList控件中的图片作为ToolBar控件上按钮的图标来使用;“外观”决定了创建的工具栏是平面还是立体的效

18、果;“样式”控制工具栏上按钮的外观。其他属性可根据需要进行设置。,10.2.2 ToolBar控件,2. 设置ToolBar控件中的按钮 点击“按钮”选项卡:使用“插入按钮”和“删除按钮”,可以增加或减少工具栏中的按钮;每个按钮需要使用ImageList控件中的哪个图片作为外观显示,在“图像”中进行设置;“关键字”用于在程序代码中引用该按钮。,10.2.2 ToolBar控件,工具栏上按钮的类型包括六种,通过“样式”进行选择 (1)0-tbrDefault:默认的按钮类型。 (2)1-tbrCheck:复选类型的按钮。同一组按钮可选中多项,如设置字体的加粗、倾斜、加下划线等。 (3)2-tbr

19、ButtonGroup:单选类型的按钮。同一组按钮只能选中一项,如设置段落的靠左、靠右、居中等对齐方式。 (4)3-tbrSeparator:分隔符类型的按钮。此时不必指定“图像”,该类按钮会以一个分隔条的形式出现。 (5)4-tbrPlaceholder:作为占据空间的按钮。 (6)5-tbrDropdown:具有下拉菜单的按钮。下拉菜单中包括的内容可在对话框下端的“按钮菜单”区域进行详细设置。,10.2.2 ToolBar控件,3. 在ToolBar控件中加入代码 ToolBar控件最常用的是ButtonClick事件,该事件的格式如下: Private Sub Toolbar1_Butt

20、onClick(ByVal Button As MSComctlLib.Button) 其中的Button对应程序运行时用户用鼠标单击的工具栏上的按钮,该按钮可用它的Button.Key属性值(关键字)来表示。,10.3 Windows界面样式及创建SDI程序界面,10.3.1 Windows界面样式 10.3.2 创建SDI程序界面,返回目录,10.3.1 Windows界面样式,单文档界面(SDI) 多文档界面(MDI) 资源管理器界面,10.3.2 创建SDI程序界面,1. 新建一个Visual Basic工程 新建一个Visual Basic工程,把它作为SDI应用程序的主界面。如果需

21、要在程序启动时显示一个启动画面,那么需要另外添加一个窗体作为启动画面。 有时,在程序的帮助菜单中,需要有一个“关于”的信息窗口,那么还要添加一个窗体,用来显示一些相应的信息。 2. 添加菜单 菜单是用户和程序交互的主要工具,是应用程序中可以让用户发布的命令的集合,所以在一般的应用程序中都有菜单。在菜单中可以定义一些相应的命令来完成需要的操作。可以利用前面讲过的方法为程序添加菜单。,创建SDI程序界面实例,2. Imagelist1控件-右键属性-插入图片,1. Ctrl+E添加菜单项,插入图片路径 C:Program FilesMicrosoft Visual StudioGraphicsbi

22、tmapsOFFCTLBRlargecolor C:Program FilesMicrosoft Visual StudioGraphicsbitmapstlbr_w95,创建SDI程序界面实例,3.添加toolbars控件,设置“通用”,4.修改按钮选项卡,填写关键字、图像数字,创建SDI程序界面实例,5.添加StatusBar控件并修改StatusBar控件属性,10.3.2 创建SDI程序界面,3. 添加工具栏 工具栏也是用户和程序交互的主要工具,由于它具有图形化的外观,比菜单更直观明了、操作简单,因此工具栏的使用更为普遍,在没有菜单栏的地方也可以放置工具栏。 可利用前面讲过的方法为程序

23、添加工具栏。如果程序中既有菜单,又有工具栏,应注意它们之间的对应关系。 4. 添加工作区域 工作区域放置的是应用程序操作的对象。例如,可以放置一个文本框,来输入处理的文本。,10.3.2 创建SDI程序界面,5. 添加状态栏 在比较专业的程序中,一般都需要有状态栏,用来显示一些相关的程序状态信息。状态栏可使用状态条控件(StatusBar)来实现,该控件和ToolBar控件、ImageList控件一样,也是“Microsoft Windows Common Controls 6.0”中的一个控件。 6. 编写代码 界面设置完成以后,还要编写相关命令的代码,从而来实现应用程序的相关功能。通过以上

24、这些操作,便建立了一个简单的SDI程序界面。,10.4 创建MDI程序界面,10.4.1 MDI窗体与MDI子窗体 10.4.2 创建MDI应用程序,返回目录,10.4.1 MDI窗体与MDI子窗体,在MDI应用程序中,可以同时显示多个文档,每个文档显示在自己的窗口中。文档窗口包含在父窗口内,父窗口为应用程序中所有的文档子窗口提供操作的空间。可见,一个MDI应用程序可以包含三类窗体,即普通窗体(标准窗体)、MDI父窗体和MDI子窗体。 一个应用程序当然可以包含许多相似或者不同样式的MDI子窗体。在设计阶段,子窗体是独立的,并不被限制在MDI父窗体的区域内,可以在子窗体上增加控件、设置属性、编写

25、代码。也就是说,设计阶段的MDI子窗体和标准窗体没有区别。,10.4.1 MDI窗体与MDI子窗体,那么,又怎样确定一个窗体是否为子窗体呢?如果一个窗体的MDIChild属性被设置为True,那么该窗体就是子窗体。另外,在工程资源管理器的窗口中MDI窗体、MDI子窗体和标准窗体使用不同的图标来显示。,创建MDI应用程序实例,1.创建MDI父窗体,2.创建MDI子窗体:创建一个标准窗体,修改窗体属性MDIchild=true,创建MDI应用程序实例,3.修改MDI父窗体为启动窗体:工程-属性-通用-启动,4.完成窗体菜单、按钮的添加。 添加如下代码: Private Sub MDIForm_Lo

26、ad() Form2.Show Form3.Show Form4.Show End Sub,10.4.2 创建MDI应用程序,创建MDI应用程序,首先要创建MDI父窗体及其子窗体,然后再对它们进行必要的设置。 1. 创建MDI父窗体 MDI父窗体是MDI应用程序的前提和基础。从“工程”菜单中选取“添加MDI窗体”命令,这时,屏幕上就会出现一个新窗体,该窗体的标题是“MDIForm1”,它就是新建的MDI父窗体。 需要注意的是,一个应用程序只能有一个MDI窗体,如果工程中已经有了一个MDI窗体,那么“工程”菜单中的“添加MDI窗体”的命令就不可用。,10.4.2 创建MDI应用程序,2. 创建MDI子窗体 执行“添加窗体”命令会新建一个标准窗体,这时候,在该窗体的属性窗口中找到MDIChild属性,并把它的值由False改为True,则该窗体即成为MDI父窗体的一个子窗体。子窗体上的操作和标准窗体的操作是一样的。 3. 将MDI父窗体设置为启动窗体 从“工程”菜单中选取当前工程的属性

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论