菜单程序设计课件

上传人:夏*** 文档编号:243132762 上传时间:2024-09-16 格式:PPT 页数:50 大小:411.50KB
返回 下载 相关 举报
菜单程序设计课件_第1页
第1页 / 共50页
菜单程序设计课件_第2页
第2页 / 共50页
菜单程序设计课件_第3页
第3页 / 共50页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第九章 菜单程序设计,在,Windows,环境下,几乎所有的应用程序都通过菜单来实现各种操作。,对于,VB,应用程序来说,当操作比较简单时,一般通过控件来执行,而当要完成比较复杂的操作时,使用菜单具有十分明显的优势。,9.1 Visual Basic,中的菜单,1,、,菜单的作用和分类:,作用:,提供人机对话界面,便于选择应用程序的功能。,管理应用系统,控制各种功能模块的运行。,分类:,下拉式菜单:典型的窗口式菜单,弹出式菜单:鼠标器右键单击后弹出的快捷菜单,菜单的优点:,下拉式菜单的优点:,整体感强,一目了然,直观方便,易于学习。,具有导航功能,方便在各个菜单中查询要使用的功能。,占用屏幕空间小,只占用窗体上边一行,需要时下拉出子菜单。,下拉式菜单,弹出式菜单,菜单控件是一个对象;与其它对象一样,它具有定义它的外观与行为的属性。在设计或运行时可以设置,Caption,属性、,Enabled,和,Visible,属性、,Checked,属性以及其它属性。,菜单控件只包含一个事件,即,Click,事件,,当用鼠标或键盘选中该菜单控件时,将调用该事件。,9.2,菜单编辑器,VB,中的菜单通过菜单编辑器,即菜单设计窗口建立。,进入菜单编辑器有,4,种方法:,执行“工具”菜单中的“菜单编辑器”命令,使用热键,Ctrl+E,使用工具栏中的“菜单编辑器”按钮,在设计阶段,在窗体上单击鼠标右键,出现的快捷菜单上有“菜单编辑器”命令,进入菜单编辑器后,出现菜单编辑器对话框,如下图:,数据区,编辑区,菜单项显示区,将菜单编辑器分为,3,个区,上半部分为数据区,中间为编辑区,下半部分为菜单项显示区。,1,、,数据区,数据区包含有:标题、名称、索引、快捷键、帮助上下文、协调位置、复选、有效、可见、显示窗口列表。,标题:它是一个文本框,用来输入所建立的菜单运行时显示的内容,相当于控件的,Caption,属性。如果在该处输入一个减号,它将显示一个分隔线。,名称:它是一个文本框,用来输入所建立菜单的控件名,相当于控件的,Name,属性。需要注意的是,每个菜单项都是一个控件,都要取一个唯一的控件名。,索引:用来为用户建立的控件数组设立下标。,快捷键:是一个列表框,用来设置菜单项的快捷键(热键)。,帮助上下文:在该处键入一个数值,这个值用来在帮助文件中查找相应的帮助主题。,协调位置:它是一个列表框,用来确定菜单或菜单项是否出现或在什么位置显示。,复选:当选择此项目时,该项菜单可以通过单击在菜单项前加上指定的记号。它不改变菜单项的作用,也不影响事件过程对于任何对象的执行结果,只是设置或重新设置菜单项旁的符号。利用这个属性,可以指明某个菜单项当前是否处于活动状态,有效:用来设置菜单项的操作状态。在默认情况下,该属性被设置,为,True,,,表明相应的菜单项可以对用户事件做出响应。如果此属性被设置为,False,,,则在运行时,菜单项变为失效的灰色。,可见:确定菜单项是否可见。一个不可见的菜单项是不能执行的,在默认情况下,此属性值为,True,。,当制作弹出式菜单也需要用到此属性。,显示窗口列表:当该选项被设置为“,On”,时,将显示当前打开的一系列子窗口。它用于多文档应用程序。,2,、编辑区,编辑区共有,7,个按钮,用来对输入的菜单项进行简单的编辑。,左右箭头:用来产生或取消内缩符号。单击一次右箭头可以产生,4,个点,单击一次左箭头可以删除,4,个点。通过内缩的层次来区分菜单的层次。,上下箭头:用来在菜单项显示区中移动菜单项的位置。,下一个:开始一个新的菜单项。,插入:插入新的菜单项。,删除:删除当前菜单项。,3,、菜单项显示区,菜单项显示区在菜单设计窗口下部,输入的菜单项在这里显示,并且通过内缩符号表明菜单的层次,条形光标所在的菜单项为“当前菜单项”。,内缩一层为,4,个点,最多,20,个点。也就是说,最多,6,层菜单。,只有菜单名没有菜单项的菜单为顶层菜单。,在“标题”栏内输入一个“,-”,减号,则表示产生一个分隔线。,除分隔线外,所有的菜单项都可以接收,Click,事件。,在输入菜单项的“标题”栏内,如果在字母前加上“,&”,字符,则显示菜单时,在该字母下有下划线,可以使用,Alt+,字母的方式打开此菜单或执行相应的菜单命令,11.3,用菜单编辑器建立菜单,在这一节中,我们使用一个例题来讲解菜单编辑器的用法。,例题:,设计一个具有菜单的窗体,它有,2,个主菜单项,一个是计算,一个是清除与退出;在“计算”菜单中,包含“加减乘除”,4,个子菜单项,当单击任何一个计算菜单项,窗体上的标签框的内容按照输入的文本框的内容进行计算。清除将进行文本框和标签框的内容的清除,退出则结束程序运行。,第一步:建立简单菜单,界面设计:,分为,2,个主菜单项,第一个“计算”有,4,个子菜单项;第二个“清除与退出”有,2,个子菜单项。,菜单设计步骤,:,选取窗体。,从“工具”菜单中,选取“菜单编辑器”, 或者在“工具栏”上单击“菜单编辑器”按钮。,在“标题”文本框中,为第一个菜单标题键入希望在菜单栏上显示的文本。,在“名称”文本框中,键入将用来在代码中引用该菜单控件的名字。,单击向左或向右箭头按钮,可以改变该控件的缩进级。,如果需要的话,还可以设置控件的其他属性。这一工作可以在菜单编辑器中做,也可以以后在“属性”窗口中做。,选取“下一个”就可以再建一个菜单控件,或者单击“插入”可以在现有的控件之间增加一个菜单控件。,也可以单击向上与向下的箭头按钮,在现有菜单控件之中移动控件。,如果窗体所有的菜单控件都已创建,选取“确定”可关闭菜单编辑器。,窗体上有,2,个文本框,,4,个标签框(运算结果下的方框为标签框),第二步:编写菜单代码,编写菜单的程序代码:首先在窗体的设计状态下,单击要编写代码的菜单项。,出现代码编辑器,开始编写菜单项中的代码。,当用户选取一个菜单控件时,一个,Click,事件出现。需要在代码中为每个菜单控件编写一个,Click,事件过程。除分隔符条以外的所有菜单控件(以及无效的或不可见的菜单控件)都能识别,Click,事件。,Private Sub add_Click(),Label4.Caption = Val(Text1.Text) + Val(Text2.Text),End Sub,Private Sub sub_Click(),Label4.Caption = Val(Text1.Text) - Val(Text2.Text),End Sub,下面是所有程序代码:,Private Sub,mul_Click,(),Label4.Caption = Val(Text1.Text) * Val(Text2.Text),End Sub,Private Sub div_Click(),If Val(Text2.Text) 0 Then,Label4.Caption = Val(Text1.Text) / Val(Text2.Text),Else,Label4.Caption = ,除数为,0,,不能计算,End If,End Sub,Private Sub,cls_Click,(),Text1.Text = ,Text2.Text = ,Label4.Caption = ,End Sub,Private Sub quit_Click(),End,End Sub,11.4,菜单项的控制,在使用,windows,或,vb,时,有的菜单项呈灰色,有的菜单项前面有“,”,号,有的菜单项的某个字母下面有下划线等。,这一节讲述如何在菜单项中增加这些属性。,1,、有效性控制,-,使菜单命令有效或无效,所有的菜单控件都具有,Enabled,属性,当这个属性设为,False,时,菜单命令无效使它不响应动作。当,Enabled,设为,False,时,快捷键的访问也无效。一个无效的菜单控件会变暗。,例:,add,.Enabled = False,2,、,菜单项标记,-,显示菜单控件上的复选标志,所谓菜单项标记,就是在菜单项前加上一个“,”,使用,Checked,属性,可以把一个复选标志放置在菜单上以便:表示打开,/,关闭条件的状态。该属性为,True,时,相应的菜单项前有“,”,标记,选取菜单命令可交替地增加和删除此复选标志。,例,:,qq.Checked,= Not,qq.Checked,3,、,使菜单控件不可见,在菜单编辑器中,通过选取被标记为,Visible,的复选框,可以设置菜单控件的,Visible,属性的初值。在运行时,要使一个菜单控件可见或不可见,可以从代码中设置其,Visible,属性。,例:,qq.Visible,= False,4,、键盘选择,一般情况下,菜单项通过鼠标选择,执行相应的操作。在,vb,中,可以通过键盘选择所需要的菜单项。,用键盘选取菜单有两种方法:,热键和访问键。,热键:,可以直接执行菜单命令,不必一级一级下拉菜单,速度较快。,访问键:,就是菜单项中加了下划线的字母,只要按,Alt,和加了下划线的字母,就可以选择相应的菜单项。用访问键选择菜单项时,必须一级一级地选择。,说明:,热键和访问键都在菜单设计时直接指定。,为了设置访问键,必须在准备加下划线的字母的前面加上一个“,&”.,例如:,&Add,C&opy,访问键只能是一个字符,而且这个字符必须是键盘上的某个键,否则没有实际意义。,如果用汉字作为菜单项或控件的标题,则通常把访问键放在标题后面的括号中。,例如:清除(,&C,),11.5,菜单项的增减,前面建立的菜单为固定的,菜单项不能够增减。如果要增加或减少菜单项,必须打开菜单设计窗口。在运行状态下如何增减菜单呢?,增加菜单项的实现方法:,通过控件数组来实现。,使用,Load,语句建立控件数组中新的下标控件。,Load,语句的功能是把窗体或控件加载到内存中。,它的格式:,Load,控件名称,(,下标,),设置新增加的控件属性。,减少菜单项的实现方法:,通过控件数组来实现。,使用,UnLoad,语句将控件数组中的控件卸载。,UnLoad,语句的功能是把窗体或控件从内存中卸载掉。,它的格式:,UnLoad,控件数组名称,(,下标,),注意:卸载控件数组中的控件时,如果被卸载的控件在数组中间,后续的控件下标不会自动上移。,举例:,编写一个程序,有一个主菜单为应用程序,应用程序菜单下有下面这些菜单项:增加应用程序、减少应用程序和一个分隔线,当单击增加应用程序菜单项,窗体上显示,2,个文本框、,2,个标签框、,1,个确定按钮,输入菜单项显示内容和应用程序文件名,(,含路径,),,单击确定按钮,此内容加入菜单,文本框等隐藏;当单击减少应用程序,窗体上显示列表框,里面有应用程序项,选择一个,单击确定按钮,减少选中的应用程序,隐藏列表框等。,分析:,首先,建立菜单,包括:增加应用程序、减少应用程序、分隔线、应用程序(控件数组,隐藏)。,编写应用程序菜单项单击事件(可使用,shell,函数)。由于增加的菜单项显示内容不是其应用程序名,应该声明一个模块级的数组用来放置应用程序名,另外还需要增加一个模块级变量保存现有的新增的菜单项个数。,增加应用程序菜单项单击事件:显示文本框等,用户输入内容后,单击确定按钮,将内容增加到菜单项中,使用,Load,命令。,减少应用程序菜单项单击事件:显示列表框,用户选择一个项目,单击确定按钮,将内容从菜单项中卸载。注意这里不要直接卸载这个菜单项,应该将其后的内容往前移动,然后卸载最后一个菜单项。,此程序比较复杂,请察看源程序或者观看视频学习。,另外:当简单的几个项目暂时需要隐藏起来,可以使用菜单项的隐藏属性(,visibled,)。,11.6,弹出式菜单,除了下拉式菜单,,Windows,还经常使用弹出式菜单,几乎在每个对象上单击鼠标器右键都会出现弹出式的快捷菜单。,建立弹出式菜单的步骤:,使用菜单编辑器编辑菜单,在主菜单中的菜单名的可见属性设置为,false,。,在需要弹出弹出式菜单的事件过程中使用,PopupMenu,方法,:,对象名,.,PopupMenu,菜单名,Flags,X,Y,BoldCommand,说明:,对象名,:窗体名,菜单名,:弹出式菜单的名称,flags,参数,:在,PopupMenu,方法中使用,flags,参数可以进一步定义弹出式菜单的位置与性能。,Boldcommand,参数:,用,来指定在显示的弹出式菜单中想以粗体字体出现的菜单控件的名称。在弹出式菜单中只能有一个菜单控件被加粗。,一般来说,在程序中,通常把,PopupMenu,方法放在对象的,MouseDown,事件中。此事件可以根据事件参数区分鼠标左右键的按下。,举例:在窗体上,用鼠标器右键弹出弹出式菜单,菜单中有下面这些菜单项,字体设置、分隔线、字号增大、字号减小、分隔线、粗体(复选)。当单击菜单项时针对标签框执行对应的操作。,分析:,首先:设置菜单,注意主菜单项为不可见。,编制代码:,初始化粗体菜单项起始状态,Private Sub Form_Load(),Mbold.Checked,= False,End Sub,标签框的内容字号变小,Private Sub,Msizesub_Click,(),Label1.FontSize =,Label1.FontSize,- 3,End Sub,标签框的内容字号变大,Private Sub,Msizeadd_Click,(),Label1.FontSize =,Label1.FontSize,+ 3,End Sub,设置菜单中粗体,设置标签中粗体,Private Sub,Mbold_Click,(),Mbold.Checked,= Not,Mbold.Checked,Label1.FontBold =,Mbold.Checked,End Sub,当鼠标右键单击标签,弹出菜单,注意参数,x,y,为鼠标相对于标签的顶部和右部的位置,Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single),If Button = 2 Then,PopupMenu,Mset, , X + Label1.Left, Y + Label1.Top,End If,End Sub,当鼠标右键单击窗体,弹出菜单,Private Sub,Form_MouseDown(Button,As Integer, Shift As Integer, X As Single, Y As Single),If Button = 2 Then,PopupMenu,Mset, , X, Y,End If,End Sub,11.3,工,具,栏,VB,提供了工具栏,Toolbar,控件,可以方便地为应用程序制作工具栏,为了使工具按钮更生动,,VB,还提供了图像列表,ImageList,控件,使用这两个控件可以制作出非常形象的应用程序工具栏。但这两个控件不是标准控件,使用之前要把它们添加到工具箱中,具体操作方法是:,(1),右键单击,【,工具箱,】,空白位置,选择弹出菜单中的,【,部件,】,命令,弹出,【,部件,】,对话框;,(2),在对话框的,【,控件,】,列表框中选择,MicorSoft,Windows Common Controls 6.0,选项,(,使该选项前的复选框中出现对钩,),;,(3),单击,【,确定,】,按钮。,此后,在工具箱中增加一组控件,设计工具栏的主要步骤是:,(1),将,Toolbar,和,ImageList,添加到窗体。,Toolbar,自动显示在窗体顶部,,ImageList,运行程序时不可见,它只是存放图标的数据库。,(2),为,ImageList,添加所需图标。,(3),创建,Toolbar,的按钮对象。,(4),编写按钮对象的事件过程。,为,ImageList,添加所需图标,把,ImageList,控件添加到窗体上,右单击该控件,从弹出的快捷菜单中选择,【,属性,】,,便打开,【,属性页,】,对话框,.,创建,Toolbar,的按钮对象,把,Toolbar,控件添加到窗体上,右单击该控件,从弹出的快捷菜单中选择,【,属性,】,,便打开,Toolbar,控件,【,属性页,】,对话框,。,通用卡设置,通用卡主要用于连接,ImageList,,,从,【,图像列表,】,的下拉列表中选择,ImageList,控件,l,插入按钮:在工具栏添加一个按钮,每次单击,【,插入按钮,】,,系统在索引号指定的按钮之后插入一个按钮。,l,索引:工具栏中按钮的序号,索引号从,1,开始。每次单击,【,插入按钮,】,,系统在索引号指定的按钮之后插入一个按钮,并自动生成索引号,,在事件过程中可引用索引号。,l,关键字:可选项,按钮的名称,可在事件过程中引用。,l,图像:可以输入,ImageList,控件图标的序号,(,索引号,),,也可以输入,ImageList,控件图标的名称,(,关键字,),,代表在,Toolbar,的按钮中引用索引号或关键字指定的图标。,l,样式:按钮的形式,例如,普通按钮为,0,,开关按钮为,1,,分隔线按钮为,3,等。,11.4,状态栏,StatusBar,状态栏常用于显示系统信息和对用户的提示,如:系统日期和时间、软件版本、光标的当前位置、键盘的状态等。状态栏一般在窗口的底部。,把,StatusBar,控件添加到窗体上,右键单击该控件,从弹出的快捷菜单中选择,【,属性,】,,便打开,StatusBar,控件,【,属性页,】,对话框。,通用卡设置,样式:选择状态栏的样式,可取,0,或,1,,,0,是普通状态栏,,1,是简单状态栏。简单状态栏只有一个窗格,普通状态栏允许使用多个窗格。,窗格卡设置,l,插入窗格:在状态栏添加一个窗格,每次单击,【,插入窗格,】,,系统在索引号指定的窗格之后插入一个窗格。,l,索引:状态栏中窗格的序号,索引号从,1,开始。每次单击,【,插入窗格,】,,系统在索引号指定的窗格之后插入一个窗格,并自动为新窗格生成索引号,索引号可在事件过程中引用。,l,删除窗格:删除选择,(,索引号指定,),的窗格。,l,文本:窗格上显示的字符串,l,工具提示文本:当鼠标指针指向窗格并停留时,出现的提示信息。,l,关键字:窗格的名称,可在事件过程中引用,可选项 。,l,样式:下拉列表,选择其中列表项目,便指定了该窗格显示的信息。,索引样式说明,0,sbrText,显示文本,确省值,1,sbrCaps,显示,Caps Lock,键状态,2,sbrNum,显示,Num Lock,键状态,3,sbrIns,显示,Insert,键状态,4,sbrScrl,显示,Scroll Lock,键状态,5,SbrTime,显示系统时间,6,sbrData,显示系统日期,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!