第8章对话框和菜单.ppt

上传人:sccc 文档编号:5286263 上传时间:2023-06-22 格式:PPT 页数:43 大小:391.52KB
返回 下载 相关 举报
第8章对话框和菜单.ppt_第1页
第1页 / 共43页
第8章对话框和菜单.ppt_第2页
第2页 / 共43页
第8章对话框和菜单.ppt_第3页
第3页 / 共43页
第8章对话框和菜单.ppt_第4页
第4页 / 共43页
第8章对话框和菜单.ppt_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《第8章对话框和菜单.ppt》由会员分享,可在线阅读,更多相关《第8章对话框和菜单.ppt(43页珍藏版)》请在三一办公上搜索。

1、台州学院计算机系,1,第8章 对话框和菜单,台州学院计算机系,2,本章内容,8.1 用户自定义对话框8.1.1 对话框概述8.1.2 由普通窗体创建自定义对话框8.1.3 使用“对话框”模板窗体创建对话框8.1.4 显示与关闭“自定义”对话框8.2 通用对话框控件CommonDialog8.2.1 通用对话框控件8.2.2“打开”/“另存为”对话框8.2.3“颜色”对话框 8.2.4“字体”对话框8.2.5 其他对话框 8.3 菜单设计8.3.1 菜单概述 8.3.2 菜单编辑器 8.3.3 下拉式菜单8.3.4 弹出式菜单,台州学院计算机系,3,8.1.1 对话框概述,1对话框的分类Visu

2、al Basic中的对话框分为3种类型,即系统预定义对话框、用户自定义对话框和通用对话框。预定义对话框是由系统提供的,是Visual Basic预先设计好的、以函数形式提供的对话框。Visual Basic提供了两种预定义对话框,即输入对话框和消息对话框,前者用InputBox函数建立,后者用MsgBox函数建立,具体用法请参见第2章。系统预定义对话框在应用上有一定的局限性,很多情况下无法满足需要,用户可以根据具体需要建立自己的对话框。创建用户自定义对话框一般有两种方法:一是用户根据应用程序的需要,在一个普通窗体上,使用标签、文本框、单选按钮、复选框和命令按钮等控件,通过编写相关的程序代码来实

3、现人机交互功能;二是使用Visual Basic系统提供的“对话框”模板窗体,通过简单的修改便可创建一个适应于自己程序的自定义对话框。通用对话框是使用Common Dialog控件,编程人员可以轻松地把Windows的标准对话框加入到自己的应用程序中。,台州学院计算机系,4,8.1.1 对话框概述,2对话框的特点(1)在一般情况下,对话框的边框是固定的,用户不能改变其大小。(2)为了退出对话框,必须单击其中的某个按钮,不能通过单击对话框外部的某个地方关闭对话框。(3)在对话框中不能有最大化按钮(MaxButton)和最小化按钮(MinButton)。(4)对话框不是程序的主要工作区,只是临时使

4、用,使用完毕就关闭。(5)对话框中控件的属性可以在设计阶段设置,也可以在运行时通过代码设置或修改控件的属性。,台州学院计算机系,5,8.1.4 显示与关闭“自定义”对话框,1显示“自定义”对话框可使用窗体对象的Show方法显示“自定义”对话框,通过设置不同的参数可以显示两种不同类型的对话框:(1)模式对话框。模式对话框在焦点可以切换到其他窗体或对话框之前要求用户必须作出响应以关闭对话框,如单击“确定”按钮、“取消”按钮或者直接单击“关闭”按钮。一般来说,显示重要信息的对话框不允许用户无视其存在,因此需要被设置成模式对话框,其显示方法为:.ShowvbModal(其中vbModal是系统常数,值

5、为1)(2)无模式对话框。无模式对话框的焦点可以自由切换到其他窗体或对话框,而无需用户关闭当前对话框,其显示方法为:.Show2关闭“自定义”对话框可使用Hide方法或UnLoad语句来关闭自定义对话框,其格式为:Me.Hide或.HideUnLoad。这里的“Me”是一个关键字,Me代表正在执行的地方提供引用具体实例,一般指当前窗体。显示或关闭的操作会涉及到多重窗体编程,有关的设计问题请参见本书第2章第2.1节。,台州学院计算机系,6,8.2.1 通用对话框控件,当要定义的对话框功能较为复杂时,将会花费较多的时间和精力。为此,Visual Basic还提供了一组基于Windows的通用对话框

6、控件(CommonDialog),用户可以利用通用对话框控件在窗体上创建6种对话框,分别为“打开”(Open)、“另存为”(Save As)、“颜色”(Color)、“字体”(Font)、“打印”(Printer)和“帮助”(Help)对话框。通用对话框是一种ActiveX控件。在一般情况下,启动Visual Basic后,在工具箱中没有通用对话框控件。为了把通用对话框控件加到工具箱中,可按如下步骤操作:(1)单击“工程”菜单的“部件”选项,或者用鼠标右键单击工具箱,在弹出的菜单中选择“部件”,打开“部件”对话框,如图8-3所示。(2)在对话框中选择“控件”选项卡,然后在控件列表框中选择“Mi

7、crosoft Common Dialog Control 6.0”。(3)单击“确定”按钮,通用对话框即被加到工具箱中。,台州学院计算机系,7,台州学院计算机系,8,把通用对话框添加到工具箱以后,就可以像使用标准控件一样把它添加到窗体上。缺省情况下通用对话框的名称为CommonDialogn(n为1、2、3)。通用对话框控件可以被设计为显示6种不同的对话框,每一种对话框对应一个不同的Action属性值和一个Show方法,其对应关系如表8-1所示。,台州学院计算机系,9,在设计状态,将CommonDialog控件添加到窗体上,它以图标显示在窗体上,其大小不能改变;在程序运行时,控件本身被隐藏。

8、值得注意的是Action属性只能在程序中赋值,而不能在属性窗口进行设置,与此同时,通用对话框仅提供了一个用户和应用程序的信息交互界面,具体功能的实现还需编写相应的程序。下面将介绍如何建立Visual Basic提供的几种主要的通用对话框,即“打开”对话框、“另存为”对话框、“颜色”对话框、“字体”对话框。,台州学院计算机系,10,8.2.2“打开”/“另存为”对话框,使用通用对话框控件的ShowOpen方法,或将Action属性赋值为1,可以在运行时显示“打开”对话框,如图8-4所示。使用通用对话框控件的ShowSave方法,或将Action属性赋值为2,可以在运行时显示“另存为”对话框,如图

9、8-5所示。,台州学院计算机系,11,“打开”对话框与“另存为”对话框为用户提供了一个标准的文件打开与保存的界面。因为这两种对话框具有许多共同的属性,故放在一起介绍。1对话框标题(Dialog Title)设置对话框的标题。在默认情况下“打开”对话框的标题是“打开”,“保存”对话框的标题是“保存”。2Filter属性用来指定在对话框中显示的文件类型,用该属性可以设置多个文件类型,供用户在对话框的“文件类型”的下拉列表中选择。Filter的属性值由一对或多对文本字符串组成,每对字符串用管道符“|”隔开,在“|”前面的部分称为描述符,后面的部分一般为通配符和文件扩展名,称为“过滤器”,如*.txt

10、等,各对字符串之间也用管道符隔开。其格式如下:文件说明字符|类型描述|文件说明字符|类型描述例如,为CommonDialog1.Filter赋值如下:“Word文档(*.doc)|*.doc|文本文件(*.txt)|*.txt|所有文件(*.*)|*.*”,台州学院计算机系,12,3FilterIndex属性FilterIndex属性为整型,用于确定选择了何种文件类型,缺省设置为0,系统取Filter属性设置中的第一项,相当于FilterIndex属性值设置为1,在上例中,如选择“Word文档(*.doc)”可以不设置,也可将FilterIndex属性值设置为1。4InitDir属性用来指定对

11、话框的起始目录。如果没有设置InitDir,则显示当前目录。例如:CommonDialog1.InitDir=C:zjicmFile5DefaultExt属性设置对话框中默认文件扩展名。6CancelError属性CancelError属性为逻辑型值,表示用户在与对话框进行信息交换时,按下“取消”按钮时是否产生出错信息。当该属性设置为True时,无论何时单击“取消”按钮,将出现错误警告;Err对象的Number属性值置为32755(cdlCancel)。当该属性设置为False(缺省)时,单击“取消”按钮,不会出现错误警告。注意,上述属性若在程序中设置,都必须放在使用Action属性或用Sho

12、wOpen和ShowSave方法调用“打开”或“另存为”对话框的语句之前;否则该属性不效。,台州学院计算机系,13,7FileName属性FileName属性为字符型,用于返回或设置用户要打开或保存的文件全名(含路径),运行时用户在通用对话框中选择的文件或输入的文件就保存在该属性中,关闭对话框后,可用FileName属性得到文件全名。8FileTitle属性FileTitle属性为字符型,用于返回或设置用户要打开或保存的文件名(不含路径)。运行时,用户选定的文件名或在“文件名”文本框中输入文件名后,FileTitle属性为该文件名(而FileName属性则由文件名及其路径共同组成)。,台州学院

13、计算机系,14,【例8-1】设计一个图片浏览器。可以加载显示图片,也可保存图片。,台州学院计算机系,15,(1)界面设计在窗体上建立一个Picture1控件,用于显示图片;建立通用对话框控件CommonDialog1;再建立两个命令按钮,如图8-6所示。,台州学院计算机系,16,Private Sub Command1_Click()CommonDialog1.dialogtitle=打开图片文件 设置对话框标题 CommonDialog1.InitDir=C:winnt 设置打开目录 设置过滤器属性 CommonDialog1.Filter=所有文件(*.*)|*.*|bmp文件|*.bmp

14、|gif文件|*.gif CommonDialog1.filterindex=2 设置过滤器索引默认属性为2 CommonDialog1.Action=1 调用打开文件对话框 Picture1.Picture=LoadPicture(CommonDialog1.FileName)加载所选择的图片End SubPrivate Sub Command2_Click()CommonDialog1.dialogtitle=图片另存为 设置对话框标题 CommonDialog1.InitDir=C:winnt 设置打开目录 设置过滤器属性 CommonDialog1.Filter=所有文件(*.*)|*

15、.*|bmp文件|*.bmp|gif文件|*.gif CommonDialog1.Defaultext=bmp 设置默认属性为2 CommonDialog1.Action=2 调用另存为文件对话框 SavePicture Picture1.Picture,CommonDialog1.FileNameEnd Sub,台州学院计算机系,17,8.2.3“颜色”对话框,使用通用对话框控件的ShowColor方法,或将Action属性赋值为3,可显示“颜色”对话框,它为用户提供了一个标准的调色板界面,如图8-8所示,用户可以使用其中的基本颜色,也可以自己调色。当用户选中某一种颜色后,该颜色值(长整型)

16、赋给Color属性。,台州学院计算机系,18,【例8-2】设计一形状程序,通过“颜色”对话框对形状进行着色。,台州学院计算机系,19,(1)界面设计在窗体上建立一个形状控件Shape1,用于显示各种形状;建立通用对话框控件CommonDialog1;再建立框架,并在其中建立单选按钮控件数组,如图8-9所示。,台州学院计算机系,20,Private Sub Command1_Click()CommonDialog1.ShowColor 打开颜色对话框 Shape1.FillStyle=0 实心填充 Shape1.FillColor=CommonDialog1.ColorEnd SubPrivat

17、e Sub Option1_Click(Index As Integer)Shape1.Shape=Index 选择形状End Sub,台州学院计算机系,21,8.2.4“字体”对话框,运行时,使用通用对话框控件的ShowFont方法,或将Action属性赋值为4,可以显示“字体”对话框。在“字体”对话框中选定设置并关闭对话框,读者可以通过使用以下属性得到所需要的设置对象的字体属性。1字体格式属性Font Name:选定字体的名称FontBold:是否选定了粗体FontItalic:是否选定了斜体FontStrikethru:是否选定了水平删除线FontUnderline:是否选定了下划线Fo

18、ntSize:选定字体的大小Color:选定的颜色,台州学院计算机系,22,“字体”对话框为用户提供了一个标准的进行字体设置的界面(如图8-11所示),通过该对话框用户可以选择字体、字体样式、字体大小、字体效果以及字体颜色。,台州学院计算机系,23,2Flags属性Flags属性确定对话框中显示字体的类型,在显示字体对话框前必须设置该属性,否则会产生不存在字体的错误。常用设置如表8-2所示。使用Or运算符可以为一个对话框设置多个标志,如cdlCFScreenFonts Or cdlCFEffects。其中,要使用FontStrikethru、FontUnderline和Color这3个属性,必

19、须先将通用对话框的Flags属性设置为cdlCFEffects或256。,台州学院计算机系,24,【例8-3】“字体”对话框示例。在文本框上显示文字,利用“字体”对话框来设置所显示文字的字体、字型、大小、颜色等。,台州学院计算机系,25,(1)界面设计在窗体上添加一个通用对话框CommonDialog1、一个文本框Text1、两个命令按钮Command1和Command2,并设置属性如下:Text1.Multiline=True 多行文本Text1.ScrollBars=2 具有垂直滚动条Command1.Caption=选择字体Command2.Caption=结束在Text1的属性窗口内设

20、置Text属性,输入若干行要在文本框内显示的文字。,台州学院计算机系,26,编写Form_Load、Command1和Command2的Click事件过程代码如下:Private Sub Form_Load()CommonDialog1.FontName=宋体 设置初始字体为宋体 Flags为256+1,使用屏幕字体;出现颜色、效果等选项 CommonDialog1.Flags=257End SubPrivate Sub Command1_Click()CommonDialog1.ShowFont 打开字体对话框 Text1.FontName=CommonDialog1.FontName Te

21、xt1.FontSize=CommonDialog1.FontSize Text1.FontBold=CommonDialog1.FontBold Text1.FontItalic=CommonDialog1.FontItalic Text1.FontUnderline=CommonDialog1.FontUnderline Text1.FontStrikethru=CommonDialog1.FontStrikethru Text1.ForeColor=CommonDialog1.ColorEnd SubPrivate Sub Command2_Click()EndEnd Sub,台州学院计

22、算机系,27,台州学院计算机系,28,8.3.2 菜单编辑器,Visual Basic 6.0没有菜单控件,但提供了建立菜单的菜单编辑器。在Visual Basic 6.0集成开发环境中,可以通过以下4种方式进入菜单编辑器:执行“工具”菜单中的“菜单编辑器”命令使用热键CtrlE。单击工具栏中的“菜单编辑器”按钮。在要建立菜单的窗体上单击鼠标右键,将弹出一个菜单,单击“菜单编辑器”命令。,台州学院计算机系,29,注意,只有当某个窗体为活动窗体时,才能用上面的方法打开菜单编辑器窗口。打开后的菜单编辑器窗口如图8-14所示。,台州学院计算机系,30,从菜单编辑器窗口可知,菜单编辑器窗口分为三个部分

23、,即数据区、编辑区和菜单项显示区。1数据区数据区为窗口标题栏下面的5行,用来输入或修改菜单项,设置属性。其中的主要项目的作用见表8-3。,台州学院计算机系,31,台州学院计算机系,32,2编辑区编辑区由7个按钮组成,单击右箭头将把选定的菜单向右移一个等级。单击左箭头将把选定的菜单向上移一个等级。单击上箭头将把选定的菜单项在同级菜单内向上移动一个位置。单击下箭头把选定的菜单项在同级菜单内向下移动一个位置。单击“下一个”按钮将开始一个新的菜单项。单击“插入”按钮将在某个菜单项前插入一个新的同级空白菜单项。单击“删除”按钮将删除选定的菜单项。,台州学院计算机系,33,3菜单项列表区菜单项列表区为菜单

24、编辑器最下面的列表框,该列表框显示菜单项的分级列表。将子菜单项缩进以指出它们的分级位置或等级。参见图8-15。,台州学院计算机系,34,在使用Windows应用程序时经常会发现,某些菜单项会呈灰色显示,此时单击该菜单项没有任何反映,有时菜单项的标题会发生改变。这些都可以通过在菜单设计和程序代码中加以控制。(1)有效性控制一个菜单项是否正常显示,即该菜单项是否“有效”,是由该菜单项的“有效”属性来控制的。只有该属性设置为True时,单击该菜单项才会执行相应的操作。可以在设计时设置该属性值(选中图8-15中的“有效”复选框),也可以在运行时通过执行代码加以改变。(2)可见性控制只有将菜单项的Vis

25、ible属性设置为True,该菜单项才显示。可以在设计时设置该属性值(选中图8-15中的“可见”复选框),也可以在运行时通过执行代码加以改变。(3)菜单项标记菜单项标记就是在菜单项左边加上标记表明该菜单项处于选中状态。设计时该属性可以由菜单编辑器中的“复选”(Checked)属性设置,也可以在属性窗口的“Checked”栏内设置。通常情况下,该属性时在程序运行时动态地进行设置的。,台州学院计算机系,35,8.3.3 下拉式菜单,任何复杂的菜单程序都遵循相同的设计方法,在窗体中添加菜单的一般方法如下:(1)选取菜单控件出现的窗体。(2)从“工具”菜单中选取“菜单编辑器”;或者在工具栏上单击“菜单

26、编辑器”按钮,则打开“菜单编辑器”,如图8-14所示。(3)在“标题”文本框中,为第一个菜单标题键入希望在菜单栏上显示的文本。如果希望某一字符成为该菜单项的访问键,也可以在该字符前面加上一个“&”字符。在菜单中,这一字符会自动加上一条下划线。菜单标题文本显示在菜单控件列表框中。(4)在“名称”文本框中,键入将用来在代码中引用该菜单控件的名字。(5)单击向左或向右箭头按钮,可以改变该控件的缩进级。(6)如果需要的话,还可以设置控件的其他属性。这一工作可以在菜单编辑器中做,也可以以后在“属性”窗口中做。(7)单击“下一个”按钮就可以再建一个菜单控件。或者单击“插入”可以在现有的控件之间增加一个菜单

27、控件。也可以单击向上与向下的箭头按钮,在现有菜单编辑器的列表框中移动菜单。(8)如果窗体所有的菜单控件都已创建,单击“确定”按钮可关闭菜单编辑器。(9)创建的菜单将显示在窗体上。在设计时,单击一个菜单标题可下拉其相应的菜单项。,台州学院计算机系,36,【例8-4】利用菜单和对话框设计一个文本编辑器。,台州学院计算机系,37,表8-4 各级菜单设置,台州学院计算机系,38,Private Sub Color_Click()单击子菜单Color时执行该事件过程 Commondialog1.Action=3 打开颜色对话框 Text1.ForeColor=Commondialog1.Color 改变

28、Text1的文本颜色End SubPrivate Sub Copy_Click()单击子菜单Copy时执行该事件过程 Clipboard.Clear 剪贴板先清空 Clipboard.SetText Text1.SelText 将选中的文本加入到剪贴板中End SubPrivate Sub cut_Click()单击子菜单Cut时执行该事件过程 Clipboard.Clear Clipboard.SetText Text1.SelText Text1.SelText=文本框选中部分清空End SubPrivate Sub Exit_Click()单击子菜单Exit时执行该事件过程 EndEnd

29、 SubPrivate Sub Font_Click()单击子菜单Font时执行该事件过程 Commondialog1.flags=257 Commondialog1.Action=4 打开字体对话框 Text1.FontName=Commondialog1.FontName Text1.FontSize=Commondialog1.FontSize Text1.FontBold=Commondialog1.FontBold Text1.FontItalic=Commondialog1.FontItalic Text1.FontUnderline=Commondialog1.FontUnder

30、line Text1.FontStrikethru=Commondialog1.FontStrikethruEnd SubPrivate Sub Paste_Click()单击子菜单Paste时执行该事件过程 Text1.SelText=Clipboard.GetText 将剪贴板中文本加入到文本框中End Sub,台州学院计算机系,39,8.3.4 弹出式菜单,弹出式菜单是独立于菜单栏显示在窗体或指定控件上的浮动菜单,菜单的显示位置与鼠标当前位置有关。实现步骤如下:(1)在菜单编辑器中建立该菜单。(2)设置其顶层菜单项(主菜单项)的Visible属性为False(不可见)。(3)在窗体或控件

31、的MouseUp或MouseDown事件中调用PopupMenu方法显示该菜单。PopupMenu的使用方法为:PopupMenu,flags,x,y,Boldcommand其中:(1)关键字“PopupMenu”可以前置窗体名称,但不可前置其他控件名称。(2)是指通过菜单编辑器设计的、至少有一个子菜单项的菜单名称(Name)。(3)Flags参数为常数,用来定义显示位置与行为,,台州学院计算机系,40,台州学院计算机系,41,【例8-5】修改上个例题,要求在文本框Text1中单击鼠标右键,能弹出pp菜单,并以鼠标指针坐标为弹出菜单的左边界,pp菜单的属性如表8-6所示,运行界面如图8-18所示。,台州学院计算机系,42,台州学院计算机系,43,程序代码如下:Private Sub Text1_MouseDown(Button As Integer,Shift As Integer,_X As Single,Y As Single)If Button=vbRightButton Then PopupMenu pp,vbPopupMenuLeftAlign,X,Y End IfEnd Sub说明:这里仅给出了弹出式菜单的程序代码,弹出式菜单项的执行代码可参见例8-4。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号