页数:55页文件大小:773.4 KB来源: VB程序设计ppt课件
本课件讲解Windows应用程序界面设计,介绍菜单编辑器与下拉式、弹出式菜单的制作,说明用ToolBar与ImageList控件制作工具栏、StatusBar状态栏的方法,讲解自定义对话框、通用对话框与选项卡式对话框,最后给出多重窗体与多文档界面的设计步骤。
第10章 界面设计
10.1 菜单的设计
10.1.1 下拉式菜单
10.1.1下拉式菜单1.下拉式菜单的结构子菜单菜单命令主菜单栏主菜单标题分隔条子菜单访问键顶级菜单快捷键
菜单编辑器与菜单项
菜单编辑器的属性区
CaptionNameIndexShortcutCheckedEnabledVisibleWindowList(MDI)NegotiatePositionHelpContextID注:标题框中键入“-”和“&”符号的作用。
不能给顶级菜单项加快捷键。属性区菜单列表区编辑区
【例10-1】设计菜单界面
,如下图所示。下拉菜单中的子菜单项用于对文本框Text1设置字体、字号、文字颜色和文字效果。其中,效果子菜单下的各菜单项具有复选功能,设运行初始时各项前面没有√符号,与文本框的初始状态一致。
各子菜单结构见P213Text1
【例10-1】菜单项属性说明
说明快捷键索引名称标题访问键Alt+FAA字体(&F)定义成控件数组AA1;AA1(3)用于生成分隔条Ctrl+A1AA1....宋体Ctrl+B2AA1....黑体3AA1....-Ctrl+C4AA1....隶书Ctrl+D5AA1....楷体_GB2312访问键Alt+SBB字号(&S)定义成控件数组BB11BB1....142BB1....163BB1....184BB1....20菜单编辑器设置如下表:
【例10-1】菜单项属性说明(续)
访问键Alt+C说明DD4....斜体DD3....粗体DD2....下划线DD1....删除线DD效果(&E)CC3....蓝色CC2....绿色CC1....红色CC颜色(&C)快捷键索引名称标题(续表)访问键Alt+E
(1)“字体”菜单
下的菜单项设计成一个控件数组AA1,共享以下事件过程:
Private SubAA1_Click(IndexAs Integer) Text1.Font = AA1(Index).Caption End Sub(2) “字号”菜单下的菜单项设计成一个控件数组BB1,共享以下事件过程: Private SubBB1_Click(IndexAs Integer) Text1.FontSize = Val(BB1(Index).Caption) End Sub(3)“颜色”菜单
下的各菜单项为独立的菜单控件,因此应分别在其单击事件过程中编写代码,各事件过程如下:
Private SubCC1_Click() Text1.ForeColor = vbRed End Sub Private SubCC2_Click() Text1.ForeColor = vbGreen End Sub Private SubCC3_Click() Text1.ForeColor = vbBlue End Sub(4) “效果”菜单
下的各菜单项具有复选功能,每次单击时应切换成另一种状态,因此要判断当前菜单项的Checked属性,各事件过程如下:
Private SubDD1_Click() If DD1.Checked = True Then Text1.FontStrikethru = FalseDD1.Checked = False Else Text1.FontStrikethru = TrueDD1.Checked = True End If End Sub【例10-1】字体菜单代码
Private SubDD2_Click() If DD2.Checked = True Then Text1.FontUnderline = FalseDD2.Checked = False Else Text1.FontUnderline = TrueDD2.Checked = True End If End Sub【例10-1】效果菜单代码
Private SubDD3_Click() If DD3.Checked = True Then Text1.FontBold = FalseDD3.Checked = False Else Text1.FontBold = TrueDD3.Checked = True End If End Sub【例10-1】效果菜单代码(续)
Private SubDD4_Click() If DD4.Checked = True Then Text1.FontItalic = FalseDD4.Checked = False Else Text1.FontItalic = TrueDD4.Checked = True End If End Sub可以在应用程序运行期间动态修改菜单项,如修改菜单标题、隐藏某些菜单项、使某些菜单项无效等。【例10-2】见P215自学10.1.2弹出式菜单
【例10-3】设计弹出式菜单
【例10-3】在例10-1的基础上设计窗体和文本框的弹出式菜单。如下图所示。
【例10-3】菜单项设置
可见名称标题EE文本框快捷菜单EE1....增加1磅EE2....减少1磅EE3....锁定FF窗体快捷菜单FF1....红色背景FF2....绿色背景FF3....默认背景(1)在菜单编辑器上增加以下设置:
【例10-3】窗体Load事件代码
'用Fcolor保存窗体初始背景颜色值DimFcolorAsLongPrivateSubForm_Load()Fcolor=Form1.BackColor
End Sub(2)在文本框的MouseDown事件
过程中编写代码
Private Sub Text1_MouseDown(Button As Integer,Shift As Integer, X As Single, Y As Single) If Button = 2 ThenPopupMenu EE, 0 Or 0 End If End Sub参数Button:1—按下鼠标的左按钮2—按下鼠标的右按钮4—按下鼠标的中间按钮左上角位于坐标处只接受左键单击(3)在窗体的MouseDown事件
过程中编写代码
Private Sub Form_MouseDown(Button As Integer,Shift As Integer, X As Single, Y As Single) If Button = 2 ThenPopupMenu FF,8 Or 0, , ,FF3 End If End Sub右上角位于坐标处FF3菜单项显示为粗体只接受左键单击x,y省略,但要保留逗号【例10-3】菜单命令代码
(4)编写实现菜单命令功能的代码
Private SubEE1_Click() Text1.FontSize = Text1.FontSize + 1 End Sub Private SubEE2_Click() Text1.FontSize = Text1.FontSize–1 End Sub Private SubEE3_Click() If EE3.Caption = "锁定"ThenEE3.Caption = "取消锁定" Text1.Locked = True ElseEE3.Caption = "锁定" Text1.Locked = False End If End Sub【例10-3】窗体快捷菜单代码
Private SubFF1_Click() Form1.BackColor = vbRed End Sub Private SubFF2_Click() Form1.BackColor = vbGreen End Sub Private SubFF3_Click() Form1.BackColor = Fcolor End Sub10.2 创建工具栏
10.2创建工具栏“Microsoft Windows Common Controls 6.0”将控件添加到工具箱,通过ToolBar、ImageList组合使用建立工具栏,步骤:1.在ImageList控件中添加所需的图像2.在ToolBar控件中创建Button对象。
3.在ButtonClick事件中用Select Case语句对各按钮进行相应的编程。10.2.1、在ImageList控件中添加图像ImageList控件不单独使用,专门为其它控件提供图像库.索引(Index)、关键字(Key)在ToolBar中引用图象文件的扩展名为:.ico、.bmp、.gif、.jpg等
在ToolBar控件中添加按钮
10.2.2、在ToolBar控件中添加按钮1.为工具栏连接图像ToolBar与ImageList的连接工具栏样式
为工具栏连接图像与按钮
2.为工具栏增加按钮索引(Index)、关键字(Key)每个按钮的编号、标识,Button_Click事件中引用;图象(Image) ImageList对象中的图象,值可以是Key或Index样式(Style),共6种除菜单按钮(5)外的5种样式
响应ToolBar控件事件
Private Sub Toolbar1_ButtonClick(Byval Button AsComctlLib.Button) Select Case Button.IndexCase1DD1_ClickCase2DD2_Click…… End Select End Sub注意:第1个按钮的Index值为1。用Index还是用Key比较,Key可读性好,可维护性好。 Select Case Button.KeyCase"Tstrike"DD2_ClickCase"Tunderline"DD2_Click.....【例10-5】用工具栏控制图形移动
【例10-5】用Toolbar控件设计工具栏,界面如下图所示,运行时,当按下箭头按钮时,图形将沿着箭头指定的方向移动,当按下形状按钮组中的任何一个按钮时,图形将变成相应的形状。
按“Stop”按钮停止移动。Timer1Interval:100Enabled:FalseImageList1Shape1ToolBar1
【例10-5】按钮属性说明
说明图像工具文本提示样式关键字索引具有选项按钮的特点1圆2-tbrButtonGroupA112椭圆2-tbrButtonGroupA223圆角矩形2-tbrButtonGroupA334矩形2-tbrButtonGroupA44分隔条3-tbrSeperatorS15具有命令按钮的特点5上移0-tbrDefaultB166下移0-tbrDefaultB277左移0-tbrDefaultB388右移0-tbrDefaultB49分隔条3-tbrSeperatorS2109停止0-tbrDefaultC111设置ToolBar控件的属性页:
【例10-5】按钮属性说明(代码)
DimDirectionAsInteger'Direction做为移动方向的标志PrivateSubTimer1_Timer()'根据箭头按钮决定移动方向'设每次移动步长为50Twips,当移动到窗体边缘时不再移动。
SelectCaseDirectionCase1'如果选择向上移动IfShape1.Top-50>Toolbar1.Height_
Then Shape1.Top= Shape1.Top-50Case2'如果选择向下移动If Shape1.Top+ Shape1.Height+50< Form1.ScaleHeight_Then Shape1.Top= Shape1.Top+50Case3'如果选择向左移动If Shape1.Left-50>0Then Shape1.Left= Shape1.Left-50Case4'如果选择向右移动If Shape1.Left+ Shape1.Width+50< Form1.ScaleWidth_Then Shape1.Left= Shape1.Left+50EndSelectEndSub代码如下:【例10-5】按钮属性说明(代码2)
PrivateSubToolbar1_ButtonClick_(ByValButtonAsMSComctlLib.Button)'根据按下的形状按钮分情况进行处理SelectCaseButton.IndexCase1Shape1.Shape=3'设图形形状为圆形Case2Shape1.Shape=2'设图形形状为椭圆Case3Shape1.Shape=4'设图形形状为圆角矩形Case4Shape1.Shape=0'设图形形状为矩形
【例10-5】按钮属性说明(代码3)
Case6Direction=1'Direction为1表示上移Timer1.Enabled=TrueCase7Direction=2'Direction为2表示下移Timer1.Enabled=TrueCase8Direction=3'Direction为3表示左移Timer1.Enabled=TrueCase9Direction=4'Direction为4表示右移Timer1.Enabled=TrueCase11'单击“停止”按钮关闭定时器,停止移动Timer1.Enabled=FalseEndSelectEndSub
10.3 状态栏的设计
10.4 对话框的设计
10.4.1自定义对话框
模式与无模式对话框
显示模式对话框窗体名.Show vbModal窗体名.Show 1显示无模式对话框窗体名.Show vbModeless窗体名.Show 0窗体名.Show例如:Form2.ShowvbModalForm2.ShowvbModeless为确保对话框可以随其父窗体的最小化而最小化,随其父窗体的关闭而关闭,需要在Show方法中定义父窗体。
例如:
Private Sub Command1_Click()Form2. Show vbModeless, Form1 End Sub编写对话框退出代码
(6)编写从对话框退出的代码例如:UnloadForm2或:Form2.HideUnload语句把对话框从内存中删除,该对话框本身以及它的控件都从内存中卸载。
而Hide方法只是通过设置对话框的Visible属性为False将其从视窗中删除。该对话框以及它的控件仍留在内存中。
【例10-7】运行指定文件的对话框
【例10-7】设计对话框Form2如下图所示。当输入某文件所在的路径及名称后,单击“确定”按钮按所选择的运行方式运行该文件,单击“取消”按钮取消本次操作,返回窗体Form1中。
如果输入文件名错误,将给出警告并返回该对话框。Text1Option1Option2Option3Command1Command2设置对话框窗体的BorderStyle属性为1
【例10-7】对话框代码
对话框Form2代码如下:
Private Sub Command1_Click() On Error GoTo ErrorHandler'设置错误陷阱FName = Trim( Text1.Text) If Option1.Value = True Then a = Shell(FName, 1) If Option2.Value = True Then a = Shell(FName, 3) If Option3.Value = True Then a = Shell(FName, 2) Exit SubErrorHandler: MsgBox "不能运行该程序", , "注意"Resume Next'从产生错误的语句之后开始运行 End Sub Private Sub Command2_Click() Unload Me End Sub10.4.2 通用对话框
10.4.2、通用对话框(CommonDialog)属性Action:打开通用对话框。DialogTiltle:对通用话框标题。
CancelErrorTrue:选择“取消”按钮,出现错误警告;Err.Number置为32755(cdCancel)。
False(缺省):选择“取消”按钮,没有错误警告。工程/部件选定部件标签选定Microsoft CommonDialog Control 6.0通用对话框添加到工具箱确定打开通用对话框:
通用对话框的文件属性
属性FileName:设置和得到用户所选的文件名,包括路径.FileTitle:用于返回文件名,不包含路径。该属性设计时无效,在程序中只读。
Filter:用来过滤文件类型,使文件列表框中只显示指定类型的文件。该属性在计阶段和代码中都可以设置。格式:文件说明|文件类型,,word文档|*.DOC|文本文件|*.txt|All Files|*.*FilterIndex:决定在文件类型列表框中显示第几组类型的文件。
InitDir:初始化路径,若显示当前目录,该属性不需要设置。DefaultExt:它表示所存文件的默认扩展名,该属性只实用于另存为对话框。
1.“打开/另存为”文件对话框DialogTiltleFileNameInitDirFilterFilterIndexDefaultExt
简单文件打开程序示例
例:简单文件打开程序,当按“用于文件打开”按钮,启动“打开对话框“,打开文件后文本标签框标题显示路径,在“打开对话框”按“取消”按钮,显示有关信息。
Private Sub Command1_Click() On Error GoTo nofile CommonDialog1.InitDir = " C:\Windows " CommonDialog1.CancelError = True CommonDialog1.Filter = "文本文件(.txt) |*.txt|all files(*.*)|*.*" CommonDialog1. ShowOpen Label1.Caption = CommonDialog1.FileName Exit Subnofile: If Err.Number = 32755 Then Label1.Caption = "放弃操作" Else Label1.Caption = "其他错误!" End If End Sub“颜色”对话框
3.“颜色”对话框属性颜色(Color):返回或设置选定的颜色,表示颜色的整数。标志(flag):设置或读取颜色属性,设置如下:描述十六制值VB常数显示全部对话框,包括定义“自定义颜色部分”&H2CdCCIFullOpen使用对话框显示帮助按钮&H8CdICCShowHelpButton使定义“自定义颜色”命令按钮无效并防止自定义颜色&H4CdICCPrevntFullOpen为对话框设置初始颜色值&H1CdICCRGBInit例10.9
4.“字体”对话框
Flags属性:指示所显示的字体类型,必须设置。cdlCFScreenFonts&H1屏幕字体cdlCFPrinterFonts&H2打印机字体cdlCFBoth&H3打印机字体和屏幕字体。
cdlCFEffects&H100显示删除线和下划线检查框以及颜色组合框FontNameFontBold、FontItalicFontSizeFontStrikethruFontUnderlineColorMin、Max
5.“打印”对话框
属性FromPage:起始页号ToPage:终止页号Copies:打印份数如果打印驱动程序不支持多份打印,该属性有可能始终返回1。
10.4.3选项卡式对话框
10.5 多重窗体与多文档窗体
10.5多重窗体和多文档窗体10.5.1、多重窗体1.添加窗体“工程|添加窗体”新建现存添加“现存”窗体时要注意:防止多个窗体的name相同而不能添加;添加的窗体实际是将其它工程中已有的窗体加入,多个工程共享窗体;通过“另存为”命令以不同的窗体文件名保存,断开共享。
2.保存窗体一个工程中有多个窗体,应分别取不同的文件名保存在磁盘上,VBP工程文件中记录了该工程的所有窗体文件名。
设置启动窗体
窗体的语句与方法
例:输入和计算学习成绩
例.输入和计算学习成绩。模块:Public MATH As SinglePublic PHYSICS As SinglePublic CHEMISTRY As SinglePublic CHINESE As SinglePublic ENGLISH As Single
10.5.2 多文档界面设计
创建多文档界面的步骤
【例10-6】MDI多文档界面示例
【例10-6】设计一个包含一个MDI父窗体MDIForm1和三个子窗体Form1、Form2和Form3的工程,将Form1、Form2和Form3的MDIChild属性分别设置为True。
在MDI窗体上设计菜单,主菜单及子菜单如图所示。
MDIForm1的菜单编辑器设置
下表:标题名称索引显示窗口列表打开Mopen....窗口1SWindow1....窗口2SWindow2....窗口3SWindow3窗口MWindows√....层叠SArrange0....水平平铺SArrange1....垂直平铺SArrange2....排列图标SArrange3
【例10-6】窗口排列代码
程序:
Private Sub Sarrange_Click(Index As Integer)MDI Form1.Arrange Index End Sub Private Sub Swindow1_Click() Form1. Show End Sub Private Sub Swindow2_Click()Form2. Show End Sub Private Sub Swindow3_Click()Form3. Show End Sub本章小结
下载地址:{{downurl}}
{{{a}}}
{{#b}}{{{b}}}
{{/b}} {{/title}} {{#nolog}}登陆注册
{{/nolog}} {{#djsx}}点我刷新
{{/djsx}} {{#gocz}} {{/gocz}} {{#ffqr}} {{/ffqr}}