




已阅读5页,还剩89页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
应用程序界面设计第一节 VB模块设计,模块:可以完成一个或若干个功能的程序快,称为“过程”。一、VB中过程概述1。三种过程,(1)事件过程:事件响应时执行的过程就是事件过程 ,事件过程名为“对象名_事件名” 。(2)通用过程 子过程(SUB):不返回值,可以作为独立的基本语句调用 函数过程(Function):返回一个值。(3)属性过程:属性过程可以用来返回和设置属性的值 .,2创建通用过程(1)使用“添加过程”对话 单击“工具”菜单中的“添加过程”命令,打开“添加过程”对话框。,(2)在代码编辑窗口中输入Private|Public Static Sub 子过程名(参数表) 语句块 Exit SubEnd Sub,说明:VB默认的过程是Public,表示在应用程序中随处都可调用它们;如用Private,则只有该过程所在模块中的程序才能调用。,注意函数过程一般应有:函数过程名=表达式,3调用子过程 (SUB过程),(1)使用Call语句:Call (2)直接使用过程名: ,说明:用Call语句调用时,其过程名后必须加括号。若省略Call,则过程名后不能加括号例如,下面两个语句都能调用jiech子过程: Call Jiech(20) Jiech 20,4调用函数过程 (Function过程),(1)直接使用过程名: (2)使用Call语句: Call 说明:调用有实参时,其过程名后必须加括号。例如 :Jiech(20) Call Jiech(20),子过程不加括号,调用方法:Print pri,(3)无参函数的调用: 如:Function pri pri =”ASDFJKL” End Function,5函数过程使用示例,例1(8-3)设计应用程序,使用两种过程计算整数1n中奇数的阶乘的和 。(vb81L8-3),Public Function qjc(p) m = 1 For j = 1 To p m = m * j Next j qjc = mEnd Function,Public Sub qjc(p, m) m = 1 For j = 1 To p m = m * j Next jEnd Sub,主程序:将文本框内容赋n 循环调函数求阶乘和输出阶乘值,Private Sub Command1_Click() Dim i%, n% Dim s As Long n = Val(Text1.Text) s = 0For i = 1 To n Step 2 s = s + qjc(i)Next i Label3.Caption = sEnd Sub,Private Sub Command1_Click() Dim i%, n% Dim t As Long, s As Longn = Val(Text1.Text)s = 0For i = 1 To n Step 2 Call qjc(i, t) s = s + tNext i Label3.Caption = sEnd Sub,*6.子过程与函数过程区别,(1) 函数过程:有返回值,有类型,在函数体内至少赋值一次; 子过程无返回值,无类型,过程体内不能对过程名赋值;(2) 调用时,子过程调用是一句独立的语句。 函数过程不能作为单独语句调用,必参与表达式运算。(3)* 一般当过程有一个函数值,使用函数过程较直观;反之,若过程无返回值或有多个返回值,使用子过程。 注意: 子过程的返回值是靠参数的传递实现的,四、 模块结构,1窗体模块 每个窗体对应一个窗体模块,窗体模块包括窗体及其控件的属性设置、窗体变量的说明、事件过程、通用过程等。,2标准模块 可包含公有或模块级的变量、常数、类型,外部过程和全局过程的全局声明或模块级声明。默认时,标准模块中的代码是公有的;它保存在.bas的文件中。,3类模块 用户可以在类模块中编写代码建立新对象,这些新对象可以包含自定义属性和方法,,五、变量与过程的作用域,1变量的作用域 变量的作用域是指变量的作用范围。,(1)局部变量:在过程内用Dim声明的变量,只可本过程用。(2)窗体/模块级:在窗体/模块任何过程外定义,即在“通用声明”段用Dim或Private声明,只本窗体或模块中的过程使用。(3)全局级:在“通用声明”段用Public语句声明的变量,可供该应用程序所有过程或函数使用。,例如在下面一个窗体或标准模块文件中不同级的变量声明:Public Pa As integerPrivate Mb As string *10 Private Sub F1( ) Dim Fa As integer End Sub Private Sub F2( ) Dim Fb As Single End Sub,全局变量,窗体/模块级变量,局部变量,局部变量,在讲复制、剪切时,为什么将st设为窗体级变量?(见P188),2。变量的生存期,根据变量在程序运行期间的生命周期,变量可分为动态变量和静态变量。动态变量(Dynamic) 指程序运行到变量所在的过程时,才分配该变量的内存单元;退出该过程后,该单元自动释放,其值消失。使用Dim语句在过程中声明的局部变量属于动态变量。,静态变量(Static)指程序运行到该变量所在的过程,退出该过程,其值仍被保留。 使用Static语句在过程中声明的局部变量属于静态变量。,例2(8-6)设计一个模拟幸运数字机游戏。设幸运数字为8,每次由计算机随机产生三个010之间的随机数,当这三个随机数中有一个数字为8时,就算赢了一次。要求利用全局变量来累计获胜次数。 (vb81L8-6),Private Sub Form_Load() RandomizeEnd Sub,初始化随机数,Public n, wPrivate Sub Command1_Click()Label1.Caption = Int(Rnd * 10) 产生随机数Label2.Caption = Int(Rnd * 10) 产生随机数Label3.Caption = Int(Rnd * 10) 产生随机数 n = n + 1 累计产生随机数的次数If (Label1.Caption = 8) Or (Label2.Caption = 8) Or (Label3.Caption = 8) Then Beep w = w + 1 使用全局变量,累计获胜的次数 Label4.Caption = 共产生了 & n & 次随机数,你赢了 & Str(w) & 次。End IfEnd Sub,若n,w不设为全局变量,而是局部变量结果如何?,n与w始终为1,局部变量声明: Dim声明: 随过程的调用而分配存贮单元,变量的初始化;过程体结束,变量的内容自动消失,存贮单元释放。,Static声明: 每次调用过程,变量保持原来的值。声明形式: Static 变量名 AS 类型 Static Function 函数过程名(参数列表) As 类型 Static Sub 子过程名(参数列表)过程名前加Static,表示该过程内的局部变量都是静态变量。,例3 (vb81L2)Private Sub Form_Click() 运行结果: Dim i% ,isum% For i = 1 To 5 isum = sum(i) Print isum, Next i End Sub,1 3 6 10 15,问:若将Static j As Integer改为 Dim j As Integer ,结果?,1 2 3 4 5,Private Function sum(n As Integer) Static j As Integer j = j + n sum = jEnd Function,例4窗体/模块级变量示例。,Dim x As Integer, y As Integer, z As IntegerPrivate Sub Form_Activate()x = 10: y = 20PrintPrint , x“,y“,z=x+yPrintPrint “调用前值”, x,y, zPrintCall testPrint “调用后值”, x,y, zPrintEnd Sub,Public Sub test()z = x + yPrint “过程值”, x, y, zPrintEnd Sub,程序运行结果 ?,x y z=x+y调用前值 10 20 0过程值 10 20 30调用后值 10 20 30,例5窗体/模块级变量示例。,Private Sub Form_Activate()Dim x As Integer, y As Integer, z As Integerx = 10: y = 20PrintPrint , x“,y“,z=x+yPrintPrint “调用前值”, x,y, zPrintCall testPrint “调用后值”, x,y, zPrintEnd Sub,Public Sub test()z = x + yPrint “过程值”, x, y, zPrintEnd Sub,程序运行结果 ?,x y z=x+y调用前值 10 20 0过程值 0 0 0调用后值 10 20 0,传址(双向传递): 形参得到的是实参的地址,当形参值的改变同时也改变实参的值。 默认传址。 传值(单向传递): 形参得到的是实参的值,形参值的改变不会影响实参的值。 使用ByVal表示传值。,三、 参数传递: 指主调过程的实参传递给被调过程的形参。,Sub Swap1(ByVal x%, ByVal y%),Sub Swap1( x%, y%),Public Sub qjc(p, m),例6. 两个变量的交换(vb81L6),Sub Swap1(ByVal x%, ByVal y%) t = x : x = y : y = tEnd SubPrivate Sub Command1_Click() a = 10: b = 20: Swap1 a, b 传值Print A1=; a, B1=; b a = 10: b = 20: Swap2 a, b 传地址 Print A2=; a, B2=; bnd Sub,Sub Swap2(x%, y%) t = x : x = y : y = tEnd Sub,默认为:Public,运行结果:,A1=10 B1=20A2=20 B2=10,2过程的作用域,VB中过程的作用域分为模块级和全局级。(1)模块级过程 某个模块内定义的过程,其作用域为本模块。 定义方法:在Sub或Function前加关键字Private,这样该过程只能被在本模块中定义的过程调用。,(2)全局级过程 全局级过程可被整个应用程序(工程)所有模块中定义的过程调用,其作用域为整个应用程序。 定义方法是:在Sub或Fuction前加关键字Public(可以默认)。,上机作业:1. 编程,通过查找子过程查找数组a(10)中任意元素的位置,若没找到,给出信息。a(10)为2,5,4,8,12,9,1,25,16,3 2。P57 4章 实验四的实验题目3。 P66 5章 实验一的四、实验题目4。上册 P231 例7-7,复 习,(1)局部变量:在过程内用Dim声明的变量,只可本过程用;在过程内用Static声明的变量为静态局部变量。(2)窗体/模块级:在窗体/模块任何过程外定义,即在“通用声明”段用Dim或Private声明,只本窗体或模块中的过程使用。(3)全局级:在“通用声明”段用Public语句声明的变量,可供该应用程序所有过程或函数使用。,1。变量分几种?如何定义?其作用范围是什么?,2。在下面一个窗体或标准模块文件中不同级的变量声明:Public Pa As integerPrivate Mb As string *10 Private Sub F1( ) Dim Fa As integer End Sub Private Sub F2( ) Static Fb As Single End Sub,全局变量,窗体/模块级变量,局部变量,静态局部变量,8.2 公共对话框(CommonDialog),1。添加公共(通用)对话框到工具箱,2。打开公共对话框:,属性(1)Action:打开通用对话框。(2)DialogTiltle:通用对话框标题。(有默认,也可自己设)。(3)CancelError True:选择“取消”按钮,出现错误警告; Err.Number置为32755(cdCancel)。 False(缺省):选择“取消”按钮,没有错误警告。,属性:FileName:包含路径 FileTitle:该属性设计时无效, 返回文件名(不包含路径) Filter:用于过滤文件类型,格式:文件说明|文件类型 例如: Word文档 (*.Doc)|*.DOC | 文本文件(*.TXT) |*.txt |所有文件|*.* FilterIndex:文件类型列表框中显示第几组类型文件。从1开始。 InitDir:指定打开对话框的初始目录,默认当前目录。,2. “打开”文件对话框,DialogTiltle,FileName,InitDir,Filter,FilterIndex,DefaultExt,例1(8-9)这是一个使用公共对话框控件的例子。(vb82l8-9),CommonDialog1.InitDir = c:“CommonDialog1.Filter = all files|*.*|(*.exe)|*.exeCommonDialog1.FilterIndex = 1CommonDialog1.Action = 1Text1.Text = CommonDialog1.FileName,ShowOpen,用控件数组设置命令按钮,Private Sub Command1_Click(Index As Integer)n = IndexSelect Case nCase 0 实现打开对话框的操作CommonDialog1.Filter = all files|*.*|(*.exe)|*.exeCommonDialog1.FilterIndex = 1CommonDialog1.ShowOpenText1.Text = CommonDialog1.FileNameFrame1.Caption = 从打开对话框返回,Action = 1,3. “另存为”对话框 属性: 与“打开”对话框类似。 DefaultExt:所存文件的缺省扩展名。,4. “颜色”对话框 属性Color: 返回或设置选定的颜色。 例1中“颜色”按钮的事件过程 如: CommonDialog1.ShowColor Text1.ForeColor = CommonDialog1.Color,Case 1 实现另存为对话框的操作CommonDialog1.DefaultExt = txtCommonDialog1.Filter = all files|*.*|文本文件|*.txt|CommonDialog1.FilterIndex = 2CommonDialog1.ShowSaveText1.Text = CommonDialog1.FileNameFrame1.Caption = 从另存为对话框返回,Case 2 实现颜色对话框的操作CommonDialog1.ShowColorText1.Text = 文本颜色的改变Text1.ForeColor = CommonDialog1.ColorFrame1.Caption = 从颜色对话框返回,Action = 3,5. “字体”对话框,5. “字体”对话框,Flags属性:指示所显示的字体类型,必须设置。 cdlCFScreenFonts &H1或1 屏幕字体 cdlCFPrinterFonts &H2或2 打印机字体 cdlCFBoth &H3或3 打印机字体和屏幕字体。 cdlCFEffects &H100或256 显示删除线和下划线 检查框及颜色组合框,“字体.”按钮的事件过程CommonDialog1.Flags = cdlCFEffects Or cdlCFBoth或 CommonDialog1.Flags = 259 3 Or 256 CommonDialog1.Action = 4 Text1.FontName = CommonDialog1.FontName Text1.FontSize = CommonDialog1.FontSize,Case 3 CommonDialog1.Flags = 3 Or 256CommonDialog1.ShowFontWith Text1.FontName = CommonDialog1.FontName.FontSize = CommonDialog1.FontSize.FontStrikethru= CommonDialog1.FontStrikethru.FontBold = CommonDialog1.FontBold.FontItalic = CommonDialog1.FontItalic.FontUnderline= CommonDialog1.FontUnderline.ForeColor = CommonDialog1.ColorEnd With,cdlCFEffects Or cdlCFBoth或 &H3 Or &H100,Action = 3,6. “打印”对话框属性: (1) FromPage:起始页号(2)ToPage:终止页号(3) Copies:打印份数 若打印驱动程序不支持多份打印,有可能始终返回 1。,Private Sub Comprint_Click()CommonDialog1.ShowPrinter 打开“打印”对话框For i = 1 To CommonDialog1.Copies Printer.Print Text1.Text 打印文本框中的内容Next i Printer.EndDoc 结束文档打印End Sub,Private Sub fileopen_Click()CommonDialog1.Filter = 文本文件|*.txtCommonDialog1.CancelError = TrueCommonDialog1.ShowOpenText1.Text = Open CommonDialog1.FileName For Input As #1 Do While Not EOF(1) Line Input #1, inputdata Text1.Text = Text1.Text + inputdata + vbcrlf Loop Close #1 Exit Sub,打开模块(以后讲供参考),保存模块(以后讲供参考),Private Sub filesave_Click()CommonDialog1.Filter = 文本文件|*.txtCommonDialog1.CancelError = TrueCommonDialog1.ShowSaveOpen CommonDialog1.FileName For Output As #1 Write #1, Text1.TextClose #1End Sub,8.3 菜单的设计,菜单形式:,子菜单名,菜单是指应用程序中为用户提供的一组命令,一般出现在界面顶部。,一、菜单编辑器的使用 1。进入菜单编辑器 “工具”菜单“菜单编辑器”(CTRL+E) 工具栏上的“菜单编辑器”按钮,2。常用属性:,1. 标题(Caption) 热键:前面加&2. 名称(Name)框, 分隔符也应有名称3. 快捷键(Shortcut) 菜单名没有快捷键4. 复选(Checked)检查框 TRUE 有5. 有效(Enabled)检查框6. 可见(Visible)检查框,3。加入分隔线:(1)单击“插入”按钮,在“标题”框中键入一个连字符(减号)“-”; (2)在“名称”框中输入分隔线的名称。,4。 添加代码,菜单中各个菜单项是作为一种特殊的控件,他们只有一个事件,即鼠标单击事件(Click)事件。每当单击菜单项时,系统就调用该菜单项的事件处理过程,执行为这一过程编写的代码。 给 “黑体”菜单项添加代码: Private Sub HeiTi_Click() Text1.Fontname= 黑体 End Sub,例2(8-10). 建立一个有菜单功能的文本编辑器。 (vb82l8-10),Private Sub songti_Click() Text1.fontname = 宋体End SubPrivate Sub kaiti_Click()Text1.fontname = 楷体_GB2312End SubPrivate Sub lishu_Click() Text1.fontname = 隶书End Sub,二、下拉式 菜单设计,Private Sub slhz_Click() Text1.fontsize = 16End SubPrivate Sub srhz_Click() Text1.fontsize = 12End SubPrivate Sub cuti_Click() Text1.FontBold = TrueEnd SubPrivate Sub xieti_Click() Text1.FontItalic = TrueEnd Sub,三、设计弹出式菜单快捷菜单,弹出式菜单(Popup Menu)又称快捷菜单。通过单击右键可激活快捷菜单。 快捷菜单也是利用菜单编辑器实现,设计时应将它的“可见”复选框设为不选中,这样在满足条件后才弹出,菜单变为可见。,弹出快捷菜单的方法是利用Popupmenu方法。 如果一个File菜单是一个快捷菜单,它的名称为FileMenu,则可在其MouseUp(按下鼠标)事件的处理过程添加语句。,添加下列语句,Private sub Form_MouseUp(Button As Integer, Shift As Integer, X as single, Y As single) If Button=2 Then PopupMenu FileMenu End If End Sub,Button=2表示右击,为1表示左击,程序运行后,如用鼠标右键在该窗口单击,则程序处理该事件,调用PopupMenu,弹出编辑菜单。,Popupmenu方法的语法如下:,. PopupMenu ,flags,x,y, BoldCommand 必给菜单名称。 x和y是窗体上显示菜单的位置。 Flags变元定义快捷菜单弹出时的位置和功能, 表8-10列出flags 参数的取值和功能。 指定一个flags参数,可从每组中选取一个常数,用逻辑“或”组合。,要加粗的子菜单名,例 题,例3(8-11)修改例2,将“格式”作为子弹出菜单使菜单以x为中心,且左、右键单击时都可触发子菜单项。 (vb82L8-11),对文本框操作才需要加这两句,Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Text1.Enabled = False 撤消系统默认弹出菜单Text1.Enabled = True 使Text1可用If Button = 2 Then PopupMenu gs, 4 Or 2 End IfEnd Sub,上机作业: 1。建立一个文本框和如图命令按钮,“打开”可在文本框显示打开的文件名,“颜色”可设置文本框背景色,“字体”可设文本框的字体、字号、颜色、删除线、下划线,也可建立两个菜单:文件- 打开 退出格式- 颜色 字体,2。 P71 四、实验题目3。 P76 四、实验题目,复 习,1. 添加一个文件菜单和打开、退出子菜单中间加分隔线,2,将“Edit”作为弹出菜单,在文本框上,单击鼠标右键时可弹出快捷菜单,代码如何写。,Private Sub Text1_MouseDown()Text1.Enabled = False 撤消系统默认弹出菜单Text1.Enabled = True 使Text1可用If Button = 2 Then PopupMenu Edit End IfEnd Sub,将Edit的可见属性社为假,8.4 多文档界面,一、界面样式 Windows应用程序的用户界面主要有两种:一种是单文档界面(SDI),另一种是多文档界面(MDI),也称为多重窗体。 Windows中的记事本就属于SDI。 Word是一个MDI界面,允许同时打开多个文档。 多文档界面是把若干窗体“封装”在一个窗体中,即:用一个窗体来操作其它窗体。可操作其它窗体的称为父窗体,其它被装入的称为子窗体。,二、多文档界面中窗体之间的关系,1.父窗体与子窗体的关系 在MDI应用程序中,父窗体只能有一个,而子窗体则可有多个。父窗体主要用于显示或排列子窗体。父窗体关闭时,子窗体也随之关闭。 子窗体在父窗体中按三种方式排列:层叠、水平平铺、垂直平铺。2.子窗体与子窗体的关系 子窗体间是相互独立的,但它们可以调用共享的模块,也可以交换数据。 一般是当前活动窗体排在最前面。,三、创建MDI应用程序的方法与步骤,1、使用“应用程序向导”生成MDI(1)选择“文件”菜单下的“新建工程”命令。(2)在“新建工程”的对话框中选择“VB应用程序向导”。(3) 进入“VB应用程序向导”后,在选择界面类型时,选择“多文档界面(MDI)”。单击“下一步”或“完成”按钮。,2使用“菜单和属性窗口”生成MDI,(1)选“文件”下的“新建工程”,开始一新工程。(2)选“工程”上的“添加MDI窗体”,加一MDI窗体。(3)选“工程”菜单的“添加窗体”,添加一窗体。 (4)打开属性窗口,把添加窗体的MDIChild的属性设为True即可。,3. MDI窗体(父窗体)与子窗体的交互 * (1)活动子窗体和活动控件 MDI窗体的两个属性: ActiveForm 和ActiveControl 分别表示:活动窗体和活动窗体上有焦点的控件 将子窗体的文本框中所选文本复制到剪贴板上: ClipBoard.SetText frmMDI.ActiveForm. _ ActiveControl.SelText 将剪贴板上文本粘贴到子窗体的文本框中: frmMDI.ActiveForm.ActiveControl.SelText= _ ClipBoard.GetText 问:如何把文本框选中的文本复制/ 剪切到剪切板?,ClipBoard.SetText Text1.SelText, Text1.SelText=,(2)显示MDI窗体及其子窗体 显示窗体的方法为Show,有关规则: 1)加载子窗体时,其父窗体会自动加载并显示;反之则无。应把子窗体作为启动窗体。 设置启动窗体: “工程/工程属性/启动对象”选启动窗体名 2)MDI窗体有AutoShowChildren属性,决定是否自动显示改变了属性(如:Caption)的子窗体.,(3)多文档界面应用程序中的“窗口”菜单 1)显示打开的多个文档窗口 要在父窗体某菜单上显示打开的子窗体标题,只需用菜单编辑器将该菜单的WindowList属性设为True。 2)排列窗口 利用Arrange方法进行层叠、平铺和排列图标。 形式: MDI窗体对象.Arrange 排列方式 排列方式,例1(8-12) MDI窗体的创建与操作,建立一个父窗体,两个子窗体,使之能分别层叠、水平平铺和垂直平铺。(1)建名为MDIForm1的父窗体(启动窗体)(2)建立两个子窗体,Caption属性分别为Form1、FormMDIChild 。(3)将FormMDIChild窗体的MDIChild属性设为True。(4)在父窗体中加入菜单,其“窗口”菜单下分别为层叠、水平平铺和垂直平铺子菜单。 (Vb83L8-12),(5)程序代码: 新建窗体代码,Public Sub FileNewProc() Dim NewDoc As New FormMDIChild Static No As Integer No = No + 1 NewDoc.Caption = “文档 & No NewDoc.Show 显示子窗体 End Sub,Private Sub new_Click(),Private Sub new_Click() FileNewProcEnd Sub,必为已有的窗体名,排列窗口代码:,Private Sub cd_Click() 参数 0代表子窗体间层叠 MDIForm1.Arrange 0End SubPrivate Sub sppp_Click() 参数 1代表子窗体间水平平铺 MDIForm1.Arrange 1End SubPrivate Sub czpp_Click() 参数 2代表子窗体间垂直平铺 MDIForm1.Arrange 2End Sub,8.5 工具栏,一、 工具栏的常用属性、方法和事件 ToolBar控件是ActiveX控件的一部分。 ToolBar控件包含一个按钮对象集合,用来创建工具栏。可在按钮上用Image属性为按钮载入一个图标,用Caption属性显示标题。 ToolBar属高级控件,先要将其加到工具箱。,(一)方法:1.单击“工程”的“部件”菜单项; 2. 再单击“Microsoft Windows Common Controls 6.0”左边的复选框; 3. 最后单击“确定”。,(二)工具栏控件的常用属性,*1. Buttons属性 访问工具栏中使用的Buttons对象的集合。*2. ImageList属性 读出和设置与工具栏相关联的ImageList控件。该属性被设置后,可以向工具栏按钮中添加图形。,3. Index属性控件名相同时,用来产生一个数组中的索引用来标识各控件。,*4. ToolTipText属性 设置程序运行时鼠标指在工具栏的某一按钮上所显示的提示文本。,5. ShowTips属性 设置是否显示工具栏按钮上的提示文本.*6 . Key属性 设置某一按钮与其他按钮相区别的关键字7 . Style属性 设置按钮的工作样式,有5个值,缺省为0。,*8 . Image属性,该属性设置按钮中显示的图形,以1,2,3.等ImageList中各图形的索引值来标识。,(三)工具栏常用事件有: (1) ButtonClick事件当单击工具栏上的任一个按钮执行事件过程; (2)Click事件当单击工具栏空白处时执行事件过程。,二、 创建工具栏,将ImageList控件添加到窗体之后,ToolBar控件才可使用其中的图标。 每个ListImage对象可用集合的索引或关键字的属性值加以引用。 创建工具栏步骤: 第一步 : 将toolbar工具栏和ImageList加入工具箱中; 第二步 : 分别加入toolbar工具栏和ImageList图象表到窗体中;,第三步 :,加入图象到ImageList图象列表中: 1. 选图象列表的“自定义”属性。 2. 单击“属性页”对话框中的“图象”选项卡,然后单击“插入图片”按钮。 C:program filessunvicobmp 3 .选中图形文件后,单击“打开”,将其加到图像框中。可 依次选多个。 4. 单击“关键字”框,为每个图标输入关键字;关键字应唯一。,第四步:设置工具栏属性:,1.用属性窗口的“自定义”选项,或右击工具栏对象,选择“属性”项。 2 . 单击“通用”按钮, 从“图象列表”框中选择加入的ImageList控件名。 3.单击“按钮”选项卡,点击“插入按钮”, “索引”框中数字自动变为1, 可设属性(由灰变黑)。 4 . 单击“图象”文本框,输入ListImage中图标或位图的索引值(1,2,3等)或关键字。 还可设置按钮标题、标记,工具提示文本等。 5. 单击“应用”按钮,设置完毕。 6. 重复35,设置多个按钮后单击“确定”。,例题:,建立一个有“复制”、“剪切”、“粘贴”按钮的工具栏。 各按钮的索引值和关键字的值为: 剪切1,key1 复制2,key2 粘贴3,key3,三、 为工具栏的各按钮编写处理过程,运行程序时工具栏出现在窗体上,此时单击各按钮,不能完成任何功能,因没编代码。 单击工具栏按钮时,产生Buttonclick事件。 编写代码时可用按钮的Index属性或key属性标识被单击的按钮,因它们是唯一的。,编写的代码如下:,Dim vbTemp As String 定义vbtemp为全局变量Private Sub Toolbar1_ButtonClick ( ByVal Button As ComctlLib. Button)Select Case Button. Key (或Button . index)Case cut (或 1) vbTemp = Text1.Text Text1.Text = Case copy vbTemp = Text1.Text,Case paster,Text2.Text = vbTemp.End SelectEnd Sub 注意:每个工具栏中的按钮不是一个独立的控件,它必须通过单击工具栏事件后,判断各按钮的索引值或关键字的值,来确定各自要实现的功能。(VB6GJLLT(例题),上机操作题:P264 7,8, 9,10,10题:将自己的作业编到一作业管理系统中。 单击“开始”按钮,调出各章作业选项列表(用列表框做) 单击某一列表选项,显示本章作业列表,选择某项后,运行该作业。 注意:(1)各作业的窗体名称不能相同。如都用form1。 (2) 先编主窗体,包括“开始”按钮和各列表框。 (3)用“工程”- “添加文件”-选作业窗体文件(窗体名称已改),加到工程中。 (4)编写代码。 (5) 用“文件”菜单的“生成xxx.exe”命令,生成可执行文件.,上机操作题,4. 设计一个菜单,通过菜单命令可以改变窗体的背景颜色、字体颜色、字体的尺寸,并且当窗口的文本框中无字符时,字体颜色和尺寸的设置无效。 7. 创建一个带有图标的工具栏,工具栏中有“新建”、“打开”、“保存”、“剪切”、“复制”、“|粘贴”等按钮。9. 设计一个界面,要求界面中带有菜单和工具栏,并可通过菜单或工具栏完成简单的文本编辑功能。,复 习,简述建立工具栏的基本步骤?工具栏的主要事件为何?通常用哪个语句和按钮的哪个属性写工具栏的代码?,复习,通过ToolBar、ImageList组合使用建立工具栏,步骤:1.利用“Microsoft Windows Common Controls 6.0”将控件添加到工具箱 2. 在ImageList控件中添加所需的图象 3. 在ToolBar控件中创建Button对象。 4. 在ButtonClick事件中用Select Case语句对各按钮进行编程。,一、 键盘事件 1。KeyPress事件过程: 按下并释放一个会产生Ascii码的键时触发事件语法格式: Sub object_KeyPress(index As Integer,KeyAscii As Integer) 响应事件的程序代码块End SubKeyAscii是按键所对应的Ascii码值,如B-66.,8.6 界面上的用户事件,Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then 按下回车键 MsgBox 您按下了回车键! End IfEnd Sub,2。KeyDown与 KeyUp事件过程:,KeyDown:按下任意一键时触发Sub object_KeyDown(index As Integer, keycode As Integer, shift As Integer) 响应事件的程序代码块End Sub 当焦点在某一对象上,按下任意一键时,会引发该对象的KeyDown事件,Sub object_KeyUp(index As Integer, keycode As Integer, shift As Integer) 响应事件的程序代码块End Sub 当焦点在某一对象上,释放任意一键时,会引发该对象的KeyDown事件,KeyUp事件过程:释放任意一键时触发参数说明: (1)index:该参数是控件数组的下标。 (2)KeyCode:键盘扫描码,告诉事件过程用户按的物理键(按键的实际码)。该码以键为准,而不是以字符为准。也就是说,大写字母与小写字母使用同一个键,它们的KeyCode相同 (使用大写字母的Ascii码)。,(3) Shift参数包含了按下Shift键、Ctrl键、Alt键的状态信息;,按键 参数值 Shift 1 Ctrl 2 Alt 4 如果Shift的值为4,表示按下了Alt键 。 注意: Shift的返回值为一个总和结果,若同时按了Ctrl和Shift键,则Shift的返回值为3;,表示按住Ctrl健,再单击鼠标左键后执行的代码END。,问:若同时按按了Shif、 Ctrl和Alt键,则Shift返回值为多少? Shift值的最大值为多少?,均为7,例如: If Shift = 2 and Button = 1 Then end,3。KeyPreview(预检)属性 窗体的KeyPreview(预检)属性设置为True,才能使用窗体的KeyDown、KeyUp、KeyPress事件,否则控件的窗体的这3个事件不起作用,只活动控件的这3个事件起作用。,按下Alt键时,Shift的值为4,例1 编一程序,当按下Alt+F5时终止程序的运行。 先把窗体的KeyPreview属性设置为True,再编写如下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年玉溪市鲜花订购合同示例
- 临活用工合同范本
- 清水房修建合同范本
- 建筑简易计税合同范本
- 机械监控采购合同范本
- 夫妻购房担保合同范本
- 2025赛事赞助合同模板
- 自助牛排采购合同范本
- 课室租赁合同范本
- 上海租赁房子合同范本
- 2025年云南省高校大学《辅导员》招聘考试题库及答案
- 2025年内蒙古交通集团考试笔试试题(含答案)
- 消费品市场2025年消费者对绿色包装认知及需求调研可行性研究报告
- 台球厅消防知识培训课件
- 充电桩运维服务协议
- 2025至2030中国防砸安全鞋行业运营态势与投资前景调查研究报告
- 2025年医疗器械仓库管理培训试题及答案
- 2024年湖南省古丈县事业单位公开招聘工作人员考试题含答案
- 水费收缴使用管理办法
- 卵巢性索间质肿瘤课件
- 2025甘肃行政执法资格考试模拟卷及答案(题型)
评论
0/150
提交评论