第11章 对话框与菜单程序设计.doc_第1页
第11章 对话框与菜单程序设计.doc_第2页
第11章 对话框与菜单程序设计.doc_第3页
第11章 对话框与菜单程序设计.doc_第4页
第11章 对话框与菜单程序设计.doc_第5页
已阅读5页,还剩24页未读, 继续免费阅读

下载本文档

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

文档简介

第11章 对话框及菜单程序设计本章要求:了解自定义对话框的使用。掌握通用对话框的建立和常用属性、常用方法; 掌握利用菜单设计器来建立、修改菜单项的方法; 本章重点:通用对话框的使用、菜单的建立与使用本章重点:通用对话框的使用、动态菜单概述:“对话框”可以被看作一种特殊的窗体,它的大小一般不可改变,也没有“最小化”和“最大化”按钮,它只有一个“关闭”按钮(有时还包含一个“帮助”按钮)。 VB提供了三种解决方案:系统预定义的对话框(InputBox和MsgBox)用户自定义对话框通用对话框控件。111对话框程序设计11.1.1 由普通窗体创建自定义对话框对话框窗体与一般窗体在外观上是有区别的,需要通过设置以下属性值来自定义窗体外观。1BorderStyle属性窗体的BorderStyle属性值设置为3(VbFixedDoubleialog) 此目的是取消最大化和最小化按钮。2ControlBox属性属性值为True时窗体显示控制菜单框,为False时不显示。例11-1 建立一个用户登录对话框运行结果如下:11.1.2 使用对话框模板窗体创建对话框Visual Basic6.0系统提供了多种不同类的“对话框”模板窗体,通过“工程”菜单中的“添加窗体”命令,即可打开“添加窗体”对话框。用户可以选择的对话框有“关于”对话框、对话框、登录对话框、日积月累、ODBC登录、选项对话框6类等, 11.1.3 通用对话框程序启动时,一般没有通用对话框控件,因此,为了使用通用对话框,需要把通用对话框控件添加到工具箱,操作如下:工程/部件选定Microsoft CommDialog Control 6.0确定 选定部件标签1打开通用对话框 通用对话框可以提供6种形式的对话框,通过设置Action属性值或调用Show方法来建立不同类型的对话框。如下表:打开通用对话框的方法与Action属性设置类型Action属性ntgg性方法“打开”对话框1ShowOpen“另存为”对话框2ShowSave“颜色”对话框3ShowColor“字体”对话框4ShowFont“打印”对话框5ShowPrinter“帮助”对话框6ShowHelp如果在过程中显示某种类型的对话框,只需要在过程中输入:通用对话框控件名.方法名或者通用对话框控件名.action=属性值即可。通用对话框的属性页 在设计时,可能通过属性窗口设置通用对话框的属性设置控件属性,通常使用通用对话框的属性页设置相关属性。 DialogTiltleFileName InitDirFilterFilterIndexDefaultExt注:加入通用对话框后,选中,而后在属性设计页选Custom,则出现属性对话框设置属性窗口。打开对话框可以用来指定文件所在驱动器、文件夹及文件名等。如果要显示打开对话框,则只需要在过程中输入:通用对话框控件名.showopen或者通用对话框控件名.action=1例11-2 显示图片示例Private Sub Command1_Click()With CommonDialog1.FileName = .Filter = 位图格式(*.bmp)|*.bmp|GIF格式(*.gif)|*.gif|JPEG格式|*.jpg.FilterIndex = 3.DialogTitle = 选择图片.ShowOpenEnd WithIf CommonDialog1.FileName ThenLabel1.Caption = CommonDialog1.FileNameImage1.Picture = LoadPicture(CommonDialog1.FileName)End IfEnd Sub运行结果如图:2. 另存为”对话框 使用通用对话框控件的ShowSave方法,或将Action属性赋值为2,可以在运行时显示“另存为”对话框。 属性例11-2a:把文本框中内容写入到指定的文件Dim str As StringPrivate Sub Command1_Click()CommonDialog1.Action = 2CommonDialog1.Filter = 文本文件(*.txt)|*.txtOpen CommonDialog1.FileName For Output As #1str = Text1Write #1, strClose #1End Sub3.“颜色”对话框颜色对话框是当Action值为3时的通用对话框。如下图:重要属性:Color:用来返回或设置选定的颜色例11-3 动态设置文本框的背景颜色Private Sub cmdcolor_Click()Text1.Text = 西江月顷在黄州,春夜行蕲水中。过酒家饮酒,醉。乘月至一溪桥上,解鞍曲肱,醉卧少休。及觉已晓。乱山攒拥,流水铿然,疑非人世也。书此语桥柱上。照野弥弥浅浪,横空隐隐层霄。障泥未解玉骢骄,我欲醉眠芳草。可惜一溪风月,莫教踏碎琼瑶。解鞍欹枕绿杨桥,杜宇一声春晓。CommonDialog1.Action = 3Text1.BackColor = CommonDialog1.ColorEnd SubPrivate Sub Command1_Click()CommonDialog1.Action = 3Text1.ForeColor = CommonDialog1.ColorEnd Sub运行结果为:4. “字体”对话框 字体对话框是Action为4时的通用对话框,如下图所示,提供用户选择字体、字号及字体样式等。字体对话框重要的属性有:Color,FontName,FontSize, FontBold,FontItalic ,FontStrikethru,FontUnderline, Max等.Flags属性:设置所显示的字体类型,数据类型为Long。注意 在显示“字体”对话框前,必须先将 Flags 属性设置为 cdlCFScreenFonts,cdlCFPrinterFonts,或cdlCFBoth。否则,会发生字体不存在的错误。(flags属性可以修改每个通用对话框的默认操作)例11-3a 动态设置文本框的字体Private Sub cmdcolor_Click()Text1.Text = 西江月顷在黄州,春夜行蕲水中。过酒家饮酒,醉。乘月至一溪桥上,解鞍曲肱,醉卧少休。及觉已晓。乱山攒拥,流水铿然,疑非人世也。书此语桥柱上。照野弥弥浅浪,横空隐隐层霄。障泥未解玉骢骄,我欲醉眠芳草。可惜一溪风月,莫教踏碎琼瑶。解鞍欹枕绿杨桥,杜宇一声春晓。CommonDialog1.Flags = cdlCFBothCommonDialog1.ShowFontText1.FontName = CommonDialog1.FontNameText1.FontSize = CommonDialog1.FontSizeEnd Sub4、 其他对话框 通用对话框除以上介绍的4种通用对话框外,还提供了“打印”和“帮助”对话框。 “打印”对话框可以设置打印输出的方法,如打印范围、打印份数以及当前安装的打印机信息等。“帮助”对话框则通过使用ShowHelp方法调用Windows系统的帮助引擎。这两种对话框的使用方法与前面介绍的类似,读者可以参考VB有关资料,得到进一步的说明。11.2 菜单设计1121菜单概述Windows环境下的应用程序一般为用户提供三种菜单:窗体控制菜单、下拉菜单与快捷菜单。11. 2.2 菜单编辑器 启动菜单编辑器:有三种方法 1 单击工具栏菜单图标 2 工具/菜单编辑器 (CTRL+E) 3 窗体上快捷菜单 菜单编辑器 菜单编辑器操作界面如右所示。菜单编辑器的使用技巧菜单的主要属性1. 标题(Caption):在窗口上显示,例如:输入&File,显示为: File,热键:Alt+F2. 名称(Name):菜单项的名称,分界符也应有名称。3. 快捷键(Shortcut):下拉列表框4 下一个(Next):设置下一个菜单项。5. 和按钮:“” 下一级菜单项;“”上一级菜单项。6. 插入(Insert)按钮:插入菜单项7. 删除(Delete)按钮:删除菜单项8. 和按钮:改变菜单项位置。10. 复选(Checked)检查框:菜单项为选定项。11. 有效(Enabled)检查框:True:菜单项可选;False:不可选。12. 显示窗口列表(Window List)检查框:菜单设计的几项操作:1 设计下拉菜单2设计子菜单或改变子菜单级别 3为菜单项分组 菜单标题用减号“-”4为菜单项指定访问键和快捷键 与命令按钮设置访问键相同。5为菜单项加上复选标记6禁止使用菜单项 在程序代码中可以通过程序代码:菜单名.Enabled=False7菜单项的增减 11.23下拉式菜单 在下拉式菜单中,一般有一个主菜单,称为菜单栏。每个菜单栏包括一个或多个选择项,称为菜单标题。 在下拉式菜单中,一般只需要对下拉菜单的最低级菜单项编写单击事件代码,如果对一个有下级菜单的菜单项编写了单击事件,则在执行下一级菜单时,该菜单程序将先执行。菜单控件(对象)只有一个事件单击事件(Click())例11-4 建立下拉式菜单,通过菜单来控制文本框中的文字的字体、颜色等。Private Sub Form_Load()Text1.FontBold = FalseText1.FontItalic = FalseText1.FontUnderline = FalseText1.FontName = times new romanText1.FontSize = 28mnuFont = FalseEnd SubPrivate Sub mnuFile_Exit_Click()Unload MeEnd SubPrivate Sub mnuFile_Input_Click()Text1.Text = InputBox(请输入:)If Text1.Text ThenmnuFont = TrueElsemnuFont = FalseEnd IfEnd SubPrivate Sub mnufont_Bold_Click()Text1.FontBold = Not Text1.FontBoldmnufont_Bold.Checked = Text1.FontBoldEnd SubPrivate Sub mnufont_italic_Click()Text1.FontItalic = Not Text1.FontItalicmnufont_italic.Checked = Text1.FontItalicEnd SubPrivate Sub mnufont_underline_Click()Text1.FontUnderline = Not Text1.FontUnderlinemnufont_underline.Checked = Text1.FontUnderlineEnd Sub1124 菜单状态的控制1菜单有效性控制设计菜单可用或不可用,需要设置菜单的enabled属性;2菜单项标记控件设计菜单项标记,需要设置菜单项的checked属性3菜单项的动态增减实现此功能,必须用控件数组、load、unload语句。例11-5 编写一个程序,自动增加或减少菜单项。Dim indexld As IntegerPrivate Sub mnuadd_Click()Dim mnucaption As Stringmnucaption = InputBox(请输入菜单标题)indexld = indexld + 1Load mnudyn(indexld)mnudyn(indexld).Caption = mnucaptionmnudyn(indexld).Visible = TrueEnd SubPrivate Sub mnudel_Click()Dim i As IntegerIf indexld 1 ThenMsgBox 菜单项已经全部删除ElseUnload mnudyn(indexld)indexld = indexld - 1End IfEnd Sub11.25 弹出式菜单 弹出式菜单是独立于菜单栏显示在窗体或指定控件上的浮动菜单,菜单的显示位置与鼠标当前位置有关。实现步骤如下:1. 在菜单编辑器中建立该菜单。2.设置其顶层菜单项(主菜单项)的Visible属性为False(不可见)。3.在窗体或控件的MouseUp或MouseDown事件中调用PopupMenu方法显示该菜单。PopupMenu的使用方法为:PopupMenu ,flags,x,y,Boldcommand其中: 关键字“PopupMenu”可以前置窗体名称,但不可前置其他控件名称。 是指通过菜单编辑器设计的、至少有一个子菜单项的菜单名称(Name)。 Flags参数为常数,用来定义显示位置与行为,其取值见教材P235.例11-6 设计一个快捷菜单Private Sub Form_Load()txtdocment.Text = asghdfdjkgdfshEnd SubPrivate Sub mnucenteralign_Click(Index As Integer)txtdocment.Alignment = vbcenterjustfyEnd SubPrivate Sub mnuleftalign_Click(Index As Integer)txtdocment.Alignment = vbleftjustfyEnd SubPrivate Sub mnurightalign_Click(Index As Integer)txtdocment.Alignment = vbrightjustfyEnd SubPrivate Sub txtdocment_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button = vbRightButton ThenPopupMenu mnualignEnd IfEnd Sub习题解答习题十一一、选择题1 设在窗体Form1上加一通用框控件commandialog1,则语句commandialog1.Action=3 的作用是_.A) 建立打开文件对话框 B) 建立保存文件对话框 C) 建立颜色对话框 D) 建立字体对话框2 设在窗体Form1上加一通用框控件commandialog1,则语句commandialog1.Action=4 的用的功能等价的是_.A)commandDialog1.showopen B)commandDialog1.showsave C)commandDialog1.showColor D)commandDialog1.showfont3 设在窗体Form1上加一通用框控件commandialog1,将其filter属性和FilterIndex属性设计为:commanddialog1.Filter=”All Files|*.*|Bitmap Files|*.bmp|JPEG Files|*.jpg|ICO Files|*.ico”commanddialog1.FilterIndex=2commanddialog1.showopen则显示出来的打开文件对话框中,在文件类型框中显示_。A)All Files B)Bitmap Files C)JPEG Files D)ICO Files4设在窗体Form1上加一通用框控件commandialog1,用语句commandialog1.showopen建立打开文件对话框,则从该文件对话框中按“确定”按钮退出时,要得到用户所选择的文件的路径僦文件名时,应该使用commanddialog1的哪个属性_。A)DefaultEXT属性 B)DialogTitle属性 C)FileName属性 D)FileTitle属性4 设在窗体Form1上加一通用框控件commandialog1,要建立保存文件对话框,则应该将commandialog1的Action属性设置为_.5 A)1 B)2 C)3 D)46 设在窗体Form1上加一通用框控件commandialog1,要建立保存文件对话框,使对话框的标题属性为“保存文件”,则应该对commandialog1的哪些个属性进行设置_。A)DefaultEXT属性 B)DialogTitle属性 C)FileName属性 D)FileTitle属性7 在打开文件对话框中,如果单击取消按钮退出对话框,则其Filename属性取值为_。A)系统默认的当前路径 B)系统默认的当前盘 C)空字符 D)系统默认的当前文件名8 设在窗体Form1上加一通用框控件commandialog1,利用它建立一个打开文件对话框央对话框中选择了“D:Myfoldertexttext1.txt”,并单击确定搂钮退出对话框,则commandialog1的Filetitle属性为_。A)空字符 B)D:Myfoldertext C)text1.text D)D:Myfoldertexttext1.txt9 用于显示弹出式菜单的方法名是_。A)Showpopup B)ShowpopupMenu C)popupMenu D)ShowMenu10 用于动态地在菜单项增加菜单项的语句是_。A)Load B)Unload C)LoadMenu D)UnloadMenu11要把一个名称为mnuFont的菜单项设置为不可见的语句是_。A)mnuFont.checked=True B)mnuFont.Enabled=True C)mnuFont.Visible=False D)mnuFont.Caption=False12以下不是菜单编辑窗口的组成部分的是_。A)菜单项显示区 B)菜单属性设置区 C)编辑区 D)菜单代码编辑区二、填空题1 在VB中,其对话框主要分为三类,它们分别是预定义、自定义、通用对话框。2 设有通用对话框控件Commandialoig1,则语句Commandialoig1.Action=1的功能是打开文件,与语句功能完全等价的另外一个语句是Commandialoig1.showOpen3 能得到颜色对话框中用户所选择的颜色的属性是Color。4 要得到字体对话框中用户所选择的字体名字、大小、颜色的属性分别是Fontname、FontSize、FontColor。5 要建立打开文件对话框、保存文件对话框、颜色对话框和字体对话框,应该分别使用对话框控件的showopen、showsave、showColor、showFont方法。6 菜单分为下拉、弹出菜单,菜单总与窗体相关联,设计菜单需要在菜单编辑器中进行。7 菜单控件只包含一个单出事件。8 要在菜单中建立分隔符应该在菜单编辑器的标题选项中输入一个“_”符号。三、程序设计题1为程序添加一个关于对话框,其中包含一仆计时器控件,实现对话框打开15秒后自动关闭。要求在程序运行时,自动打开关于对话框,即作为快速启动窗口,也可能通过菜单的“关于”命令打开。Private Sub Timer1_Timer()Unload MeEnd Sub2窗体上有一个名为CD1的通用对话框控件,一个名为text1的文本框,两个命令按钮,标题分别为“打开文件”、“保存文件”;当单击打开文件文件按钮时,把选中的文件读入text1文本框中,单击保存文件按时,把text1中的内容写入选定的文件名。Private Sub C1_Click()CD1.Filter = *.txt|*.txtCD1.InitDir = c:my documentsCD1.CancelError = FalseCD1.FilterIndex = 1CD1.ShowOpenOpen CD1.FileName For Input As #1Do While Not EOF(1)Line Input #1, sText1.Text = Text1.Text + sLoopClose #1End SubPrivate Sub C2_Click()CD1.InitDir = c:my documentsCD1.Filter = *.txt|*.txtCD1.CancelError = FalseCD1.FilterIndex = 1CD1.ShowSaveOpen CD1.FileName For Output As #1Print #1, Text1.TextClose #1End Sub3建立一下下拉式菜单,顶级为“文本框颜色”,名称为colors,两个子菜单项分别为“文本颜色”和背景颜色“”,名称分别为textcolor和backcolor。编写事件过程完成相应的功能。Private Sub backcolor_Click()Cd1.ShowColorText1.backcolor = Cd1.ColorEnd SubPrivate Sub textcolor_Click()Cd1.ShowColorText1.ForeColor = Cd1.ColorEnd Sub4建立一个弹出式菜单,菜单项目为“复制”和“粘贴”,编写事件过程完成相应功能。Private Sub copy_Click()Clipboard.SetText (Text1.SelText)End SubPrivate Sub paste_Click()Text1.SelText = Clipboard.GetTextEnd SubPrivate Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button = 2 ThenPopupMenu copypasteEnd IfEnd SubPrivate Sub Text1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button = 2 ThenPopupMenu copypasteEnd IfEnd Sub补充内容关于工具栏的设计1创建工具栏的步骤:(1) 在ImageList控件中添加所需要的图象。(2) 在ToolBar控件中创建Button对象。(3) 在ButtonClick事件中用Select Case语句对各按扭进行相应的编程。在ImageList控件中添加图象ImageList控件不可以单独使用,它专门为其他控件提供图像库,是一个图像容器控件。我们使用的工具栏按扭的图像就是通过ToolBar控件从ImageList的图像库中获得的。先在窗体上添加ImageList1和ToolBar1控件。选择ImageList1,单击右键,从弹出菜单中选择“属性”,然后在“属性页”对话框中选择“图像”标签,如图7-14所示。属性设置:索引(Index):表示每个图像的编号,在ToolBar的按扭中引用。关键子(Key):表示每个图像的标识名,在ToolBar的按扭中引用。图像数:表示已经插入的图像数目。插入图片:插入新图像,图像文件的扩展名为.ico,.bmp,.gif,.jpg等。为工具栏连接图像打开ToolBar控件“属性页”对话框,选择“通用”标签,如图:图像列表其中:图像列表:下拉式列表框表示与ImageList控件的连接,此例选择ImageList1控件名。当ImageList控件与ToolBar控件相关后,就不能对其进行编辑。若需要对ImageList控件进行编辑时,须先在ToolBar控件的“图像列表”下拉列表框设置为“无”,切断与ImageList的关系,然后对ImageList进行编辑。为工具栏增加按扭选择图7-15ToolBar属性页的“按扭”标签,如图7-16所示,单击“插入按扭”可以在工具栏上插入Button对象。在此选项卡中需要设置的属性:索引(Index):文本框表示每个按扭的数字编号,在ButtonClick事件中的引用。图像(Image):文本框选定ImageList对象中的图像,可以用图像的Key或Index值。从而和ImageList中的图像连接。如图:关键字(Key):表示每个图像的标识名,在ToolBar的按扭中引用。样式(Style):下拉列表框指定按扭样式,共6种。其属性值如表7-6表7-6 按扭样式值常数按扭说明0thrDefault普通按扭按扭按下后恢复原态1thrCheck开关按扭按扭按下后将保持按下状态2thrButtonGroup编组按扭一组按扭同时只能一个有效3thrSepatator分隔按扭把左右的按扭分隔其他按扭4thrPlaceholder占位按扭以便安放其他控件,可设置按扭宽度5thr

温馨提示

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

评论

0/150

提交评论