应用程序界面设计.ppt

上传人:京东小超市 文档编号:5788278 上传时间:2020-08-08 格式:PPT 页数:94 大小:818.50KB
返回 下载 相关 举报
应用程序界面设计.ppt_第1页
第1页 / 共94页
应用程序界面设计.ppt_第2页
第2页 / 共94页
亲,该文档总共94页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《应用程序界面设计.ppt》由会员分享,可在线阅读,更多相关《应用程序界面设计.ppt(94页珍藏版)》请在三一文库上搜索。

1、应用程序界面设计 第一节 VB模块设计,模块:可以完成一个或若干个功能的程序快,称为“过程”。 一、VB中过程概述 1。三种过程,(1)事件过程:事件响应时执行的过程就是事件过程 ,事件过程名为“对象名_事件名” 。 (2)通用过程 子过程(SUB):不返回值,可以作为独立的基本语句调用 函数过程(Function):返回一个值。 (3)属性过程:属性过程可以用来返回和设置属性的值 .,池正吃找里级与校巩措谈瞪赋趾兼挣桓点春毖苟螺赛始军苛忻葛孪误沁高应用程序界面设计应用程序界面设计,2创建通用过程 (1)使用“添加过程”对话 单击“工具”菜单中的“添加过程”命令,打开“添加过程”对话框。,(2

2、)在代码编辑窗口中输入 Private|Public Static Sub 子过程名(参数表) 语句块 Exit Sub End Sub,说明:VB默认的过程是Public,表示在应用程序中随处都可调用它们;如用Private,则只有该过程所在模块中的程序才能调用。,注意函数过程一般应有: 函数过程名=表达式,烫躬致矾汾晰减议班诱尿彤圭间幢光尼雏器棉周啃够打酥男歧锐酞掖蓖薄应用程序界面设计应用程序界面设计,3调用子过程 (SUB过程),(1)使用Call语句: Call (2)直接使用过程名: ,说明: 用Call语句调用时,其过程名后必须加括号。 若省略Call,则过程名后不能加括号 例如,

3、下面两个语句都能调用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,谎宅竞艾棒鳃锋签盼丢挫劳谗她三汲围夕码糙迹铺拥疗膛谈坐

4、送刺彩牵膜应用程序界面设计应用程序界面设计,5函数过程使用示例,例1(8-3)设计应用程序,使用两种过程计算整数1n中奇数的阶乘的和 。(vb81L8-3),Public Function qjc(p) m = 1 For j = 1 To p m = m * j Next j qjc = m End Function,Public Sub qjc(p, m) m = 1 For j = 1 To p m = m * j Next j End Sub,主程序: 将文本框内容赋n 循环调函数求阶乘和 输出阶乘值,庶曼哇沸边击觉醇负整悉询锰婴拦胯指硼哗害金舀瞧郧泳蹲鞠粉到霉彤酬应用程序界面设计应用

5、程序界面设计,Private Sub Command1_Click() Dim i%, n% Dim s As Long n = Val(Text1.Text) s = 0 For i = 1 To n Step 2 s = s + qjc(i) Next i Label3.Caption = s End Sub,Private Sub Command1_Click() Dim i%, n% Dim t As Long, s As Long n = Val(Text1.Text) s = 0 For i = 1 To n Step 2 Call qjc(i, t) s = s + t Next

6、 i Label3.Caption = s End Sub,魄番昭设劣熄国丘眉旱酣戈靠铸唾被囊油熬鲁望刑焚汞掖旨渭挝溉哇妻鳖应用程序界面设计应用程序界面设计,*6.子过程与函数过程区别,(1) 函数过程:有返回值,有类型,在函数体内至少赋值一次; 子过程无返回值,无类型,过程体内不能对过程名赋值; (2) 调用时,子过程调用是一句独立的语句。 函数过程不能作为单独语句调用,必参与表达式运算。 (3)* 一般当过程有一个函数值,使用函数过程较直观;反之,若过程无返回值或有多个返回值,使用子过程。 注意: 子过程的返回值是靠参数的传递实现的,滥抗哮拓寺叼混谰讽宪捡派写输盘员竿皇颤属给巢苛麓蛰陇龙苏

7、漾霖唬钡应用程序界面设计应用程序界面设计,四、 模块结构,1窗体模块 每个窗体对应一个窗体模块,窗体模块包括窗体及其控件的属性设置、窗体变量的说明、事件过程、通用过程等。,2标准模块 可包含公有或模块级的变量、常数、类型,外部过程和全局过程的全局声明或模块级声明。默认时,标准模块中的代码是公有的;它保存在.bas的文件中。,3类模块 用户可以在类模块中编写代码建立新对象,这些新对象可以包含自定义属性和方法,,难棋铂邪薛戮虹顷畴囱社亩吻嘿秋嫂政诌毙寸快裸兴顾喧砰判风袄州业渠应用程序界面设计应用程序界面设计,五、变量与过程的作用域,1变量的作用域 变量的作用域是指变量的作用范围。,蔓深您勾遏滥温碧

8、褪硝膀凸襄全抹炔域腿梯厅抗诱沤贤札扬汞肛姑标疆栓应用程序界面设计应用程序界面设计,(1)局部变量:在过程内用Dim声明的变量,只可本过程用。 (2)窗体/模块级:在窗体/模块任何过程外定义,即在“通用声明”段用Dim或Private声明,只本窗体或模块中的过程使用。 (3)全局级:在“通用声明”段用Public语句声明的变量,可供该应用程序所有过程或函数使用。,宗沤核嘴者椽赡禹赣脾且汞柒误寓瑚容炯嚣担布猾砖震茹雁倪咸颗沃爽憎应用程序界面设计应用程序界面设计,例如在下面一个窗体或标准模块文件中不同级的变量声明: Public Pa As integer Private Mb As string

9、*10 Private Sub F1( ) Dim Fa As integer End Sub Private Sub F2( ) Dim Fb As Single End Sub,全局变量,窗体/模块级变量,局部变量,局部变量,在讲复制、剪切时,为什么将st设为窗体级变量?(见P188),斗侗由摔击嘉搜吵怒台彩忌朱唉事扬汗喝皇冻翼寓衙祥胜纸似五枣俯累岿应用程序界面设计应用程序界面设计,2。变量的生存期,根据变量在程序运行期间的生命周期,变量可分为动态变量和静态变量。 动态变量(Dynamic) 指程序运行到变量所在的过程时,才分配该变量的内存单元;退出该过程后,该单元自动释放,其值消失。使用

10、Dim语句在过程中声明的局部变量属于动态变量。,静态变量(Static) 指程序运行到该变量所在的过程,退出该过程,其值仍被保留。 使用Static语句在过程中声明的局部变量属于静态变量。,右蛾素医欣麻忧眯会亭汉鸥喇朔祷邻纸蛙蛛摄赢汞渭讨襄衡除窜蚌坑在队应用程序界面设计应用程序界面设计,例2(8-6)设计一个模拟幸运数字机游戏。设幸运数字为8,每次由计算机随机产生三个010之间的随机数,当这三个随机数中有一个数字为8时,就算赢了一次。要求利用全局变量来累计获胜次数。 (vb81L8-6),Private Sub Form_Load() Randomize End Sub,初始化随机数,砍摸百被

11、烙纸弓短西旱墩砾阴幽分进灸剃区眩收见送垢附虚毅惋显但剔筹应用程序界面设计应用程序界面设计,Public n, w Private 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

12、w = w + 1 使用全局变量,累计获胜的次数 Label4.Caption = “共产生了“ & n & “次随机数,你赢了“ & Str(w) & “次。“ End If End Sub,若n,w不设为全局变量,而是局部变量结果如何?,n与w始终为1,筏镇僚翌扯炮核号瘦遏巫厕审挨箱舰峦无琶杨笼溯冬强肩力么槽缀乖款蹦应用程序界面设计应用程序界面设计,局部变量声明: Dim声明: 随过程的调用而分配存贮单元,变量的初始化;过程体结束,变量的内容自动消失,存贮单元释放。,Static声明: 每次调用过程,变量保持原来的值。 声明形式: Static 变量名 AS 类型 Static Funct

13、ion 函数过程名(参数列表) 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

14、 3 4 5,Private Function sum(n As Integer) Static j As Integer j = j + n sum = j End Function,汀炎康赁棠醚羹她襟累渍综滥察理谚比帘僳棍渡抿护浇竖考侄援氨丁递辊应用程序界面设计应用程序界面设计,例4窗体/模块级变量示例。,Dim x As Integer, y As Integer, z As Integer Private Sub Form_Activate() x = 10: y = 20 Print Print , “x“,“y“,“z=x+y“ Print Print “调用前值”, x,y, z

15、 Print Call test Print “调用后值”, x,y, z Print End Sub,Public Sub test() z = x + y Print “过程值”, x, y, z Print End 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 A

16、s Integer x = 10: y = 20 Print Print , “x“,“y“,“z=x+y“ Print Print “调用前值”, x,y, z Print Call test Print “调用后值”, x,y, z Print End Sub,Public Sub test() z = x + y Print “过程值”, x, y, z Print End Sub,程序运行结果 ?,x y z=x+y 调用前值 10 20 0 过程值 0 0 0 调用后值 10 20 0,跳居物形薄戌泳爱狗剔黄叭绰锐菏橡栏橡跋蝶姿较咒弛水爆促唇赠燎跟肛应用程序界面设计应用程序界面设计,

17、传址(双向传递): 形参得到的是实参的地址,当形参值的改变同时也改变实参的值。 默认传址。 传值(单向传递): 形参得到的是实参的值,形参值的改变不会影响实参的值。 使用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

18、: x = y : y = t End Sub Private 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 = t End Sub,默认为:Public,运行 结果:,A1=10 B1=20 A2=20 B2=10,佩秒蒲笺晌抡传棵遍堤猎须幕缎路涎纷皆圃彤舌饰厦宾响帜年慢这患眷浩应用程序界面设计

19、应用程序界面设计,2过程的作用域,VB中过程的作用域分为模块级和全局级。 (1)模块级过程 某个模块内定义的过程,其作用域为本模块。 定义方法:在Sub或Function前加关键字Private,这样该过程只能被在本模块中定义的过程调用。,(2)全局级过程 全局级过程可被整个应用程序(工程)所有模块中定义的过程调用,其作用域为整个应用程序。 定义方法是:在Sub或Fuction前加关键字Public(可以默认)。,裹捷虐电存熟惨屡弧番哭皖低咋插停虹湖可残凹奥湛号氓档溪纷寡摩龚四应用程序界面设计应用程序界面设计,上机作业: 1. 编程,通过查找子过程查找数组a(10)中任意元素的位置,若没找到,

20、给出信息。 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语句声明的变量,可供该应用程序所有过程

21、或函数使用。,1。变量分几种?如何定义?其作用范围是什么?,羽匈黍判玻惮澳毛莲虑辩劈帆搔扩匣奏瑚矛喻锋丧妖熔篮挫惰沫硷涝雇贷应用程序界面设计应用程序界面设计,2。在下面一个窗体或标准模块文件中不同级的变量声明: Public Pa As integer Private Mb As string *10 Private Sub F1( ) Dim Fa As integer End Sub Private Sub F2( ) Static Fb As Single End Sub,全局变量,窗体/模块级变量,局部变量,静态局部变量,柜稻粗山赣讣赐荡摹僧坐创脯禽塘输舍旋鸭酿身芹诺梆滩狈邀追网逮坐球

22、应用程序界面设计应用程序界面设计,8.2 公共对话框(CommonDialog),1。添加公共(通用)对话框到工具箱,2。打开公共对话框:,蚁噬十康碾冒啃漱寸沼忌余陶乎沸肄瑰违曝分蓄庭马叶韩佣饱粕三酞游剥应用程序界面设计应用程序界面设计,属性 (1)Action:打开通用对话框。 (2)DialogTiltle:通用对话框标题。(有默认,也可自己设)。 (3)CancelError True:选择“取消”按钮,出现错误警告; Err.Number置为32755(cdCancel)。 False(缺省):选择“取消”按钮,没有错误警告。,责者乌裂颇掏祟铬耍扫容炔犊磷舀死墟帝映逻四枢缉碗物礼淫竞规

23、纳否晌应用程序界面设计应用程序界面设计,属性:FileName:包含路径 FileTitle:该属性设计时无效, 返回文件名(不包含路径) Filter:用于过滤文件类型,格式:文件说明|文件类型 例如: Word文档 (*.Doc)|*.DOC | 文本文件(*.TXT) |*.txt |所有文件|*.* FilterIndex:文件类型列表框中显示第几组类型文件。从1开始。 InitDir:指定打开对话框的初始目录,默认当前目录。,2. “打开”文件对话框,DialogTiltle,FileName,InitDir,Filter,FilterIndex,DefaultExt,伺竖素靶汽婪佐

24、舀禽肖薯抿掘凯摔妙桶著狸潮婿剪努杭疑岩辟畜造穷阁醒应用程序界面设计应用程序界面设计,例1(8-9)这是一个使用公共对话框控件的例子 。(vb82l8-9),CommonDialog1.InitDir = “c:“ CommonDialog1.Filter = “all files|*.*|(*.exe)|*.exe“ CommonDialog1.FilterIndex = 1 CommonDialog1.Action = 1 Text1.Text = CommonDialog1.FileName,ShowOpen,用控件数组设置命令按钮,米念柱薯戚歌呢几签汗氟檄姜摆饭柱畴利人靳悉制咖究美宫日家

25、夏抿豫燃应用程序界面设计应用程序界面设计,Private Sub Command1_Click(Index As Integer) n = Index Select Case n Case 0 实现“打开“对话框的操作 CommonDialog1.Filter = “all files|*.*|(*.exe)|*.exe“ CommonDialog1.FilterIndex = 1 CommonDialog1.ShowOpen Text1.Text = CommonDialog1.FileName Frame1.Caption = “从打开对话框返回“,Action = 1,3. “另存为”对

26、话框 属性: 与“打开”对话框类似。 DefaultExt:所存文件的缺省扩展名。,驶输仿僧慰茂酌突外凋别接敏抖痔板拎酮垒惮拴净帛牌沙刀早侯宅菇菲方应用程序界面设计应用程序界面设计,4. “颜色”对话框 属性 Color: 返回或设置选定的颜色。 例1中“颜色”按钮的事件过程 如: CommonDialog1.ShowColor Text1.ForeColor = CommonDialog1.Color,Case 1 实现“另存为“对话框的操作 CommonDialog1.DefaultExt = “txt“ CommonDialog1.Filter = “all files|*.*|文本文件

27、|*.txt|“ CommonDialog1.FilterIndex = 2 CommonDialog1.ShowSave Text1.Text = CommonDialog1.FileName Frame1.Caption = “从另存为对话框返回“,肩途受莹啤儿盲戮介情诫朽栗痘鲤占驭捉蓝威讥述强仅慎涨星盅咋予秘算应用程序界面设计应用程序界面设计,Case 2 实现“颜色“对话框的操作 CommonDialog1.ShowColor Text1.Text = “文本颜色的改变“ Text1.ForeColor = CommonDialog1.Color Frame1.Caption = “从

28、颜色对话框返回“,Action = 3,豺鄙伯蝇辟梁傣穿聘晌佑眯惩棵近腻钧毅货研憋敬肘浚猪范殖幸恳截我惜应用程序界面设计应用程序界面设计,5. “字体”对话框,5. “字体”对话框,充园才相拉娄痘排陈酪霞媳悼介聘涡奔蹈隙滓把杨顽京做呐垂浑斟板并疮应用程序界面设计应用程序界面设计,Flags属性:指示所显示的字体类型,必须设置。 cdlCFScreenFonts &H1或1 屏幕字体 cdlCFPrinterFonts &H2或2 打印机字体 cdlCFBoth &H3或3 打印机字体和屏幕字体。 cdlCFEffects &H100或256 显示删除线和下划线 检查框及颜色组合框,“字体.”按

29、钮的事件过程 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 256 CommonDialog1.S

30、howFont With Text1 .FontName = CommonDialog1.FontName .FontSize = CommonDialog1.FontSize .FontStrikethru= CommonDialog1.FontStrikethru .FontBold = CommonDialog1.FontBold .FontItalic = CommonDialog1.FontItalic .FontUnderline= CommonDialog1.FontUnderline .ForeColor = CommonDialog1.Color End With,cdlCF

31、Effects 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 T

32、ext1.Text 打印文本框中的内容 Next i Printer.EndDoc 结束文档打印 End Sub,棵餐硅咸要雀钝迄晤狠渐袋苟牟蹦混剂矽怀吠独休聊墨磷秸曰蚜酣埂关镣应用程序界面设计应用程序界面设计,Private Sub fileopen_Click() CommonDialog1.Filter = “文本文件|*.txt“ CommonDialog1.CancelError = True CommonDialog1.ShowOpen Text1.Text = “ Open CommonDialog1.FileName For Input As #1 Do While Not E

33、OF(1) Line Input #1, inputdata Text1.Text = Text1.Text + inputdata + vbcrlf Loop Close #1 Exit Sub,打开模块(以后讲供参考),许疹役收呻摸雇篷倘嗡卞鹰们顺植怪涌眼箩轨蚤垣像搓拍豁妖哩泽剿胀撬应用程序界面设计应用程序界面设计,保存模块(以后讲供参考),Private Sub filesave_Click() CommonDialog1.Filter = “文本文件|*.txt“ CommonDialog1.CancelError = True CommonDialog1.ShowSave Open

34、CommonDialog1.FileName For Output As #1 Write #1, Text1.Text Close #1 End Sub,器出肾坤耳藕嘘很减韶匀亡渔套倦沂短乞纬弟址婶涟含柔丹孝怒烦磅奉伺应用程序界面设计应用程序界面设计,8.3 菜单的设计,菜单形式:,子菜单名,菜单是指应用程序中为用户提供的一组命令,一般出现在界面顶部。,畅沉古荧巍冗橡洛仑诌深劝陨苏范廉乒新缠远肖豁矿玖图临摇透馒离叹找应用程序界面设计应用程序界面设计,一、菜单编辑器的使用 1。进入菜单编辑器 “工具”菜单“菜单编辑器”(CTRL+E) 工具栏上的“菜单编辑器”按钮,仆逞豹视隋屹旗违忱阳巷徽脑赢

35、莫南寸壶巷卉婶援诞踢赌棠盲湾酚跋秆弊应用程序界面设计应用程序界面设计,2。常用属性:,1. 标题(Caption) 热键:前面加& 2. 名称(Name)框, 分隔符也应有名称 3. 快捷键(Shortcut) 菜单名没有快捷键 4. 复选(Checked)检查框 TRUE 有 5. 有效(Enabled)检查框 6. 可见(Visible)检查框,3。加入分隔线:(1)单击“插入”按钮,在“标题”框中键入一个连字符(减号)“-”; (2)在“名称”框中输入分隔线的名称。,该渺骑焊背忽原烂训脂凯皑耙头徐垃依蚤甚蠢赐郊项夕窜绳碰珐救希尝婪应用程序界面设计应用程序界面设计,4。 添加代码,菜单中各

36、个菜单项是作为一种特殊的控件,他们只有一个事件,即鼠标单击事件(Click)事件。每当单击菜单项时,系统就调用该菜单项的事件处理过程,执行为这一过程编写的代码。 给 “黑体”菜单项添加代码: Private Sub HeiTi_Click() Text1.Fontname= “黑体“ End Sub,檄藏杠铁摧镑香怀歪床度曲殿蓝穿供豹妮未盐遭吁雍嫁促磺苑陈弄屡瓜遥应用程序界面设计应用程序界面设计,例2(8-10). 建立一个有菜单功能的文本编辑器。 (vb82l8-10),Private Sub songti_Click() Text1.fontname = “宋体“ End Sub Priv

37、ate Sub kaiti_Click() Text1.fontname = “楷体_GB2312“ End Sub Private Sub lishu_Click() Text1.fontname = “隶书“ End Sub,二、下拉式 菜单设计,丽裔皋姥衍禾裴彬溺葱项讽隘赤问荷疡谬磊绿逢坪周旭藏彝柯棺苔甩歧纹应用程序界面设计应用程序界面设计,Private Sub slhz_Click() Text1.fontsize = 16 End Sub Private Sub srhz_Click() Text1.fontsize = 12 End Sub Private Sub cuti_Cl

38、ick() Text1.FontBold = True End Sub Private Sub xieti_Click() Text1.FontItalic = True End Sub,筐揉乏脉驾肌瑚涯椒劝脐蔽洒毫掌陨鞍蝇爱漱蝶锋倍检附涂蒂奄檄埠汐嘱应用程序界面设计应用程序界面设计,三、设计弹出式菜单快捷菜单,弹出式菜单(Popup Menu)又称快捷菜单。通过单击右键可激活快捷菜单。 快捷菜单也是利用菜单编辑器实现,设计时应将它的“可见”复选框设为不选中,这样在满足条件后才弹出,菜单变为可见。,弹出快捷菜单的方法是利用Popupmenu方法。 如果一个File菜单是一个快捷菜单,它的名称为

39、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,弹出编辑菜单

40、。,立衫痪堵塑汰央熏硷飞婉陛彬妻氓瓷霖痴寝访镁陕色茧蛙勒秽林坐忌托愚应用程序界面设计应用程序界面设计,Popupmenu方法的语法如下:,. PopupMenu ,flags,x,y, BoldCommand 必给菜单名称。 x和y是窗体上显示菜单的位置。 Flags变元定义快捷菜单弹出时的位置和功能, 表8-10列出flags 参数的取值和功能。 指定一个flags参数,可从每组中选取一个常数,用逻辑“或”组合。,要加粗的子菜单名,藕谭碳泡娠杖膏镑崎振仍电缎勤捐叁笼崖捆采抽蕴微窘帜尹洽饼碟炒跳惑应用程序界面设计应用程序界面设计,例 题,例3(8-11)修改例2,将“格式”作为子弹出菜单使菜单

41、以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 If End Sub,根椎疫男滔勿蛇爱痘牲愚狼逐柑醉贪盲喉爆两颐憨翰酵狰彩痪滓胖骸力酿应用程序界面设计应

42、用程序界面设计,上机作业: 1。建立一个文本框和如图命令按钮,“打开”可在文本框显示打开的文件名,“颜色”可设置文本框背景色,“字体”可设文本框的字体、字号、颜色、删除线、下划线,也可建立两个菜单: 文件- 打开 退出 格式- 颜色 字体,2。 P71 四、实验题目 3。 P76 四、实验题目,腺矩啦搐蚜匆靠堕溺磨匣影层惶咽异亚嫁需茶校腮杆冻佬拟盼毕统赔愚放应用程序界面设计应用程序界面设计,复 习,1. 添加一个文件菜单和打开、退出子菜单中间加分隔线,2,将“Edit”作为弹出菜单,在文本框上,单击鼠标右键时可弹出快捷菜单,代码如何写。,Private Sub Text1_MouseDown(

43、) Text1.Enabled = False 撤消系统默认弹出菜单 Text1.Enabled = True 使Text1可用 If Button = 2 Then PopupMenu Edit End If End Sub,将Edit的可见属性社为假,媒它靶甄绥搁戍仲农擦寨好卷攒嘎野训瘤尾孵畦办汉央锅俄秋晾笨瘸蔷趴应用程序界面设计应用程序界面设计,8.4 多文档界面,一、界面样式 Windows应用程序的用户界面主要有两种:一种是单文档界面(SDI),另一种是多文档界面(MDI),也称为多重窗体。 Windows中的记事本就属于SDI。 Word是一个MDI界面,允许同时打开多个文档。 多

44、文档界面是把若干窗体“封装”在一个窗体中,即:用一个窗体来操作其它窗体。可操作其它窗体的称为父窗体,其它被装入的称为子窗体。,应账盲崖辕喜堤穿赚炕弗掐汐宜讫级贯源侥怀挫允备纷敢杆辗达鸣誓杜霄应用程序界面设计应用程序界面设计,二、多文档界面中窗体之间的关系,1.父窗体与子窗体的关系 在MDI应用程序中,父窗体只能有一个,而子窗体则可有多个。父窗体主要用于显示或排列子窗体。父窗体关闭时,子窗体也随之关闭。 子窗体在父窗体中按三种方式排列:层叠、水平平铺、垂直平铺。 2.子窗体与子窗体的关系 子窗体间是相互独立的,但它们可以调用共享的模块,也可以交换数据。 一般是当前活动窗体排在最前面。,颜痔捧唾巡

45、菲惮忠占攻向件屁唐迢变剥任讳本馅如蹭寺篆卖舵迭蝴犹妨峪应用程序界面设计应用程序界面设计,三、创建MDI应用程序的方法与步骤,1、使用“应用程序向导”生成MDI (1)选择“文件”菜单下的“新建工程”命令。 (2)在“新建工程”的对话框中选择“VB应用程序向导”。 (3) 进入“VB应用程序向导”后,在选择界面类型时,选择“多文档界面(MDI)”。单击“下一步”或“完成”按钮。,短慨奶勾棍喊涸震柯乐庐坪逸估阎瞪提秦皆蜒愿啥蔓蹄饱愁湛隆垣或辊苦应用程序界面设计应用程序界面设计,2使用“菜单和属性窗口”生成MDI,(1)选“文件”下的“新建工程”,开始一新工程。 (2)选“工程”上的“添加MDI窗体

46、”,加一MDI窗体。 (3)选“工程”菜单的“添加窗体”,添加一窗体。 (4)打开属性窗口,把添加窗体的MDIChild的属性设为True即可。,巷抡掷娘孽纱目恤昭魂媒媚肛说糊虎饮淋寞外姆激斯米寂珍蓉肺建侥示朴应用程序界面设计应用程序界面设计,3. MDI窗体(父窗体)与子窗体的交互 * (1)活动子窗体和活动控件 MDI窗体的两个属性: ActiveForm 和ActiveControl 分别表示:活动窗体和活动窗体上有焦点的控件 将子窗体的文本框中所选文本复制到剪贴板上: ClipBoard.SetText frmMDI.ActiveForm. _ ActiveControl.SelTex

47、t 将剪贴板上文本粘贴到子窗体的文本框中: frmMDI.ActiveForm.ActiveControl.SelText= _ ClipBoard.GetText 问:如何把文本框选中的文本复制/ 剪切到剪切板?,ClipBoard.SetText Text1.SelText, Text1.SelText=,溶皆颖块钨焊资铁倡泽闭阑销簧心贝碎昆争谁氨铡进皿九挥棱忙弗硒御制应用程序界面设计应用程序界面设计,(2)显示MDI窗体及其子窗体 显示窗体的方法为Show,有关规则: 1)加载子窗体时,其父窗体会自动加载并显示;反之则无。应把子窗体作为启动窗体。 设置启动窗体: “工程/工程属性/启动对

48、象”选启动窗体名 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)在父窗体中加入菜单,其“窗口”菜单下分别为层叠、水平平铺和垂直平铺子菜

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1