资源预览内容
第1页 / 共51页
第2页 / 共51页
第3页 / 共51页
第4页 / 共51页
第5页 / 共51页
第6页 / 共51页
第7页 / 共51页
第8页 / 共51页
第9页 / 共51页
第10页 / 共51页
亲,该文档总共51页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第十讲界面设计界面设计内容提要n 鼠标和键盘n 通用对话框n 制作菜单 下拉菜单 弹出式菜单鼠标指针形状鼠标MousePointer属性决定鼠标指针进入控件区域时显示的形状。对象名.MousePointer = 值常常 数数值值描描 述述 vbDefault0(缺省值)形状由对象决定。VbArrow1箭头VbCrosshair2十字线VbIbeam3I 型VbSizePointer5尺寸线(指向东、南、西和北四方向的箭头)鼠标指针形状鼠标常常 数数值值描描 述述VbSizeNESW6右上-左下尺寸线(指向东北和西南方向的双箭头)VbSizeNS7垂-直尺寸线(指向南和北的双箭头)VbSizeNWSE8左上-右下尺寸线(指向东南和西北方向的双箭头)VbSizeWE9水-平尺寸线(指向东和西两个方向的双箭头)VbUpArrow10向上的箭头VbHourglass11沙漏(表示等待状态)VbNoDrop12不允许放下VbArrowHourglass13箭头和沙漏VbArrowQuestion14箭头和问号VbSizeAll15四向尺寸线VbCustom99通过 MouseIcon 属性所指定的自定义图标自定义鼠标指针鼠标当MousePointer属性被设置为99时,可利用MouseIcon属性自定义鼠标指针。对象名.MouseIcon=LoadPicture(文件路径)对象名.MouseIcon=另一对象名.PictureMousePointer = 99Form1.MouseIcon = LoadPicture(fire.ico)可在设计阶段通过属性窗口设置,也可在运行阶段通过代码设置鼠标事件鼠标Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)End SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)End SubPrivate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)End Sub事件何时发生?MouseDown单击鼠标上的任何一个按钮MouseUp松开鼠标上的任何一个按钮MouseMove移动鼠标鼠标事件过程中的参数 中键中键右键右键左键左键鼠标n Button参数Button=1 左键被按下Button=2 右键被按下Button=4 中键被按下1vbLeftButton2vbRightButton4vbMiddleButton使用符号常数鼠标事件过程中的参数鼠标n Shift参数 Alt键键 Ctrl键键Shift键键Shift=1 Shift键被按下Shift=2 Ctrl键被按下Shift=4 Alt键被按下Shift=3 按下Shift+Ctrl.1vbShiftMask2vbCtrlMask4vbAltMask使用符号常数鼠标事件过程中的参数n X,Y参数 对应当前鼠标指针所在的坐标与X,Y相关的属性是 CurrentX ,CurrentY。CurrentX ,CurrentY记录绘图命令运行完毕时的X,Y值。其默认值是0,0。 Line -(500,500)画(0,0)到(500,500)的直线, CurrentX=500 CurrentY=500鼠标鼠标事件-例1Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Line -(X, Y) Circle (X, Y), 40End Sub移动鼠标时画图鼠标鼠标事件-例2单击鼠标左键,随手画,单击鼠标右键,画直线Dim drawit As BooleanPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 1 Then drawit = True CurrentX = X CurrentY = Y Else If Button = 2 Then Line -(X, Y) End If End IfEnd Sub鼠标鼠标事件-例2Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If drawit Then Line -(X, Y) End IfEnd SubPrivate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 1 Then drawit = False End IfEnd Sub鼠标键盘事件键盘n KeyPress事件 按下并释放一个能产生ASCII码的键时触发n KeyDown事件 按下键盘上任何一个键时触发n KeyUp事件 释放键盘上任何一个键时触发KeyPress事件Private Sub form_KeyPress(KeyAscii As Integer)End SubPrivate Sub 控件名_KeyPress(Index as Integer, KeyAscii As Integer)End Subn KeyAscii 返回按下键的Ascii 码n 默认情况下,只有窗体上具有焦点的对象才能接收KeyPress事件,而窗体本身不会接收KeyPress事件n 窗体接收KeyPress事件 窗体上没有可视和有效的控件 窗体的KeyPreview属性设置为TrueKeyPreview 属性n窗体的KeyPreview属性设置为True时,窗体先接收KeyPress事件,然后控件继续接收该事件。假定窗体KeyPreview为True,并有下面事件过程,则当文本框中输入“1”时,实际上是得到的是“3”Sub Form_KeyPress(KeyAscii As Integer) KeyAscii = KeyAscii + 1End SubSub Text1_KeyPress(KeyAscii As Integer) KeyAscii = KeyAscii + 1End Sub?窗体KeyPreview为False时 在文本框中输入“1”时,实际上得到的是什么。KeyPreview 属性-例文本框中只能输入大写字母Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = 65 And KeyAscii = 90 Then Text1.Text = Text1.Text & Chr(KeyAscii) End IfEnd SubPrivate Sub Text1_KeyPress(KeyAscii As Integer) KeyAscii = 0End Sub把窗体的KeyPreview 属性设置为 TrueKeyDown和KeyUp事件Sub Form_KeyDown(keycode As Integer, shift As Integer)Sub 对象对象_KeyDown(index As Integer,keycode As Integer, shift As Integer)Sub Form_KeyUp(keycode As Integer, shift As Integer)Sub 对象对象_KeyUp(index As Integer,keycode As Integer, shift As Integer)nShift参数与鼠标事件过程的参数与鼠标事件过程的Shift相同相同nKeyCode:键盘扫描码:键盘扫描码KeyPressKeyDown和KeyUp事件发生的时间输入一个ASCII字符按任意一个键参数值KeyAscii接收到字符的ASCII值KeyCode接收到键的扫描码按Shift+A时事件发生的次数事件发生一次事件发生两次按Shift+A时参数值(键盘处于大写状态)a97第一次是16第二次是65按Shift+A时参数值(键盘处于小写状态)A65第一次是16第二次是65KeyAscii和 KeyCode区别拖放拖放是一种重要的鼠标操作,VB提供的与鼠标拖放有关的属性、方法和事件为:n DragMode属性有两个取值:0和1(缺省是) 取0时,手工拖动模式。必须在MouseDown事件过程中,使用Drag方法启动拖操作 取1时,自动拖动模式,该控件不再接收Click和MouseDown事件。拖放n Drag方法用于除Line、Menu 、Shape、Timer、CommonDialog之外的任何控件的开始、结束、取消拖动操作。对象名称.drag action action参数取值:0- 取消拖放操作,不调用DragDrop事件过程1-开始拖放操作,调用DragDrop事件过程,缺省设置 2-结束拖放操作,调用DragDrop事件过程拖放n DragOver事件 当拖动源对象到某个对象上时,触发该对象的DragOver事件Sub 对象名_DragOver(Source As Control,X As Single,Y As Single, State As Integer)End Subn Source是被拖动的控件,含有被拖动对象的属性n x,y为当前鼠标指针的坐标位置n State是一个整数,可取,拖放nDragDrop事件 当拖动源对象到某个对象上释放鼠标时,或使用Drag方法,将其值设为2时,触发该对象的DragDrop事件Sub 对象名_DragDrop(Source As Control,X As Single,Y As Single)End Sub x,y为释放鼠标按钮时鼠标指针的坐标位置拖放例在窗体上可任意拖动的图标Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)Picture1.Move X, YEnd SubPicture1 的DragMode=1拖放例对象属性属性值窗体Width4650Height2175NameDragStripCaptionDrag Strip手动拖动模拟文件操作:从文件夹中取出文件,放入文件柜,放入之前先打开抽屉。对象属性属性值label1Caption(空白)Aligement1command1Caption退出拖放例对象属性属性值Picture1NameFolderTagFolderPictureFolder02.icoDragMode1BorderStyle0DragIconFolder01.icoPicture2NameCabinetTagCabinetPictureFiles03a.icoBorderStyle0Private Sub Command1_Click() EndEnd Sub拖放例Private Sub cabinet_DragOver(Source As Control, X As Single, Y As Single, State As Integer) If Source.Tag = Folder Then cabinet.Picture = LoadPicture(files03b.ico) End If If State = 1 Then cabinet.Picture = LoadPicture(files03a.ico) End IfEnd SubPrivate Sub cabinet_DragDrop(Source As Control, X As Single, Y As Single) If Source.Tag = Folder Then cabinet.Picture = LoadPicture(files03a.ico) Label1.Caption = Folder recieved End IfEnd Sub通用对话框nVisual Basic的通用对话框控件提供了一组标准的Windows对话框,分别是:“打开” 、“另存为”、“颜色”、“字体”、“打印”和“帮助”对话框 n通用对话框控件是ActiveX控件, 位于“Microsoft CommonDialog Control 6.0” 中。n在设计阶段,通用对话框以图标形式显示在窗体上,其大小不能改变,在运行阶段,通用对话框隐藏。通用对话框对话框类型Action属性Show方法显示打开文件对话框1ShowOpen显示另存为对话框2ShowSave显示颜色对话框3ShowColor显示字体对话框4ShowFont显示打印对话框5ShowPrinter显示帮助对话框6ShowHelpn需要用Action 属性或Show方法激活方可调出相应的对话框nAction属性只能在运行阶段用程序设置或引用n通用对话框只是输入/输出的界面,不能真正实现如文件打开、保存等操作,要实现这些功能必须要编写程序。通用对话框属性n DialogTitle属性 用于设置对话框的标题n CancelError属性 用于设置当用户单击通用对话框的“取消”按钮时,是否产生出错信息,有两个取值: True和False True:出现错误警告。 False:不出现错误警告,缺省设置。n Action属性“打开”对话框 用来遍历整个磁盘,找到所需的文件,是Windows应用程序中常用的对话框 n具有通用对话框的通用属性n FileName属性 用于设置或返回要打开文件的路径及文件名,属性值为字符串 “打开”对话框n Filter属性 用于指定过滤文件的类型,只有指定的文件类型,才出现在“文件类型”列表框中,设计阶段:说明1| 文件类型1| 说明2| 文件类型2 运行阶段:对话框名.Filter=“说明1| 文件类型1| 说明2| 文件类型2” 用于返回打开文件的文件名 在设计时无效,在运行时只读 与FileName属性不同之处是该属性不返回路径 n FileTitle属性“打开”对话框n FilterIndex属性 用来指定缺省的过滤器,用Filter属性设置多个过滤器后,每个过滤器自动获得一个值,第一个过滤器的值是1,第二个过滤器的值是2,n InitDir属性 用于指定“打开”对话框中的初始目录,缺省显示当前目录 “另存为”对话框 是Windows存储文件时的一个标准界面,可供用户选择和输入保存文件的路径和文件名 n具有通用对话框的通用属性n具有“打开”对话框的属性n DefaultExt属性表示保存文件的缺省扩展名当保存的文件没有扩展名时,自动给该文件添加由DefaultExt属性指定的扩展名“打开”和“保存”对话框 例图片浏览和保存功能 对象对象属性属性值值image1 Stretch True CommonDialog1 Filter jpg文件文件| *.jpg |gif文件文件| *.gif Private Sub Command1_Click() CommonDialog1.ShowOpen Image1.Picture = LoadPicture(CommonDialog1.FileName)End SubPrivate Sub Command2_Click() CommonDialog1.ShowSave SavePicture Image1.Picture, CommonDialog1.FileNameEnd Sub“颜色”对话框 是Windows环境下设置颜色的一个标准界面n具有通用对话框的通用属性n Color属性 用于设置初始颜色,并可返回用户所选择的颜色n Flags属性 用于设置“颜色”对话框的类型,有四种取值1、2、4、8 1:使Color属性定义的颜色在首次显示对话框时显示出来2:打开完整的“颜色”对话框4:只有基本颜色窗口,禁止打开自定义颜色窗口8:显示一个“帮助”按钮“字体”对话框 设置并返回所用字体的名字、字形、大小、效果和颜色 n具有通用对话框的通用属性n Flags属性 设置通用对话框是否显示屏幕字体、打印机字体或两者皆有,是必须设置的属性,Flags属性必须是下列常数之一与其他选项之和: cdlCFScreenFonts或1:屏幕字体 cdklCFPrinterFonts或2:打印机字体 cdlCFBoth或3:两种字体都有“字体”对话框Flag属性设为259(3+256)是3与常数cdlcFEffects(256,允许中划线、下划线和颜色选项)之和,“字体”对话框中出现颜色、效果选项 n Font属性集 包括六个属性,设置字体名称、大小、是否加粗、是否倾斜等 FontName FontSize FontBold FontItalic FontStrikethru FontUnderlinen Color属性 返回用户设置的字体颜色,在使用Color属性之前,必须确保Flags属性中含有cdlcFEffects值。 “颜色”和“字体”对话框-例使用“颜色”对话框和“字体”对话框设置文本框的背景色、前景色和字体。“字体”对话框中要求出现效果和颜色选项对象属性属性值text1Multiline TrueCommonDialog1Flags259 Command1Caption背景色Command2Caption前景色Command3Caption字体“颜色”和“字体”对话框-例Private Sub Command1_Click() CommonDialog1.ShowColor Text1.BackColor = CommonDialog1.ColorEnd SubPrivate Sub Command2_Click() CommonDialog1.ShowColor Text1.ForeColor = CommonDialog1.ColorEnd SubPrivate Sub Command3_Click() CommonDialog1.ShowFont Text1.FontName = CommonDialog1.FontName Text1.FontSize = CommonDialog1.FontSize Text1.FontBold = CommonDialog1.FontBold Text1.FontItalic = CommonDialog1.FontItalic Text1.FontUnderline = CommonDialog1.FontUnderline Text1.FontStrikethru = CommonDialog1.FontStrikethru Text1.ForeColor = CommonDialog1.ColorEnd Sub菜单 菜单是Windows环境下应用程序的重要组成部分,有下拉菜单和弹出式菜单两种。Visual Basic中,把每个菜单项和菜单名都看作是一个控件,并具备属性和事件,把每个菜单项都看成是一个命令按钮,可对其Click事件编制程序 访问键方便通过键盘对菜单命令的访问主菜单栏菜单名菜单项菜单命令子菜单分隔线访问键 快捷键 使用“菜单编辑器”创建菜单 “工具”/“菜单编辑器”命令 属性设置区域 编辑区域 菜单项显示区域 n“标题” :输入菜单或菜单项的名称n“名称”:输入菜单的控件名,用于在程序代码中访问菜单名或菜单项。 “标题”和“名称”属性是每个菜单名或菜单项必须要设置的 菜单制作的步骤 n在“标题”文本框中输入菜单名或菜单项的名称n在“名称”文本框中输入菜单名或菜单项的控件名称n根据情况在属性区域中设置菜单名或菜单项的其它属性(可选)n单击“下一个”按钮,创建下一个菜单项,使用编辑区域的向右箭头和向左箭头设置菜单项的层次n重复上述四个步骤,直到完成所有菜单的设计n单击“确定”按钮,关闭“菜单编辑器”窗口菜单编辑的说明n访问键的设置: 在“标题”文本框中菜单内容的后面输入连接符“&”,并在其后跟一个字母n分隔线的设置: 在 “标题”文本框中输入减号“-”n菜单项升级或降级: 编辑区域的左、右箭头使选中的菜单项增加或降低一个菜单级别,上下箭头可使选中的菜单项在同级菜单内向上或向下移动一个显示位置。n产生新菜单项: “下一个”按钮 菜单编辑-例1标题名称名称快捷快捷键有效有效编辑(&E)EditTrue.剪切剪切EditCutCtrl+XTrue.复制复制EditCopyCtrl+CTrue.粘粘贴EditPasteCtrl+VFalse格式格式(&F)FormatTrue.字体字体FontTrue.楷体楷体FontKaitiTrue.隶隶书FontLishuTrue创建一个简易文本编辑器 标题名称名称快捷快捷键有效有效.字号字号FontSizeTrue.18FontSize18True.24FontSize24True.36FontSize36True.48FontSize48True.风格格FontStyleTrue.加粗加粗StyleBoldTrue.倾斜斜StyleItalicTrue菜单编辑-例1Private a As StringPrivate Sub EditCopy_Click() a = Text1.SelText editpaste.Enabled = TrueEnd SubPrivate Sub EditCut_Click() a = Text1.SelText Text1.SelText = editpaste.Enabled = TrueEnd SubPrivate Sub EditPaste_Click() Text1.SelText = aEnd SubPrivate Sub FontKaiti_Click() Text1.FontName = 楷体楷体_GB2312End SubPrivate Sub FontLishu_Click() Text1.FontName = 隶书隶书End SubPrivate Sub FontSize18_Click() Text1.fontsize = 18End SubPrivate Sub FontSize24_Click() Text1.fontsize = 24End Sub菜单编辑-例1Private Sub FontSize36_Click() Text1.fontsize = 36End SubPrivate Sub FontSize48_Click() Text1.fontsize = 48End SubPrivate Sub StyleBold_Click() Text1.FontBold = Not Text1.FontBold StyleBold.Checked = Not StyleBold.CheckedEnd SubPrivate Sub StyleItalic_Click() Text1.FontItalic = Not Text1.FontItalic StyleItalic.Checked = Not StyleItalic.CheckedEnd Sub弹出式菜单 n 用鼠标单击时弹出的菜单 独立于窗体的菜单栏,而且可根据用户单击鼠标时的位置,显示不同的菜单内容n 使用“菜单编辑器” 只须把该菜单“可见”复选框前的复选标记去掉。n 需要在程序中使用PopupMenu方法显示弹出式菜单PopupMenu方法 对象.PopupMenu 菜单名 ,Flags,x,yn对象是窗体名,省略窗体名时,弹出式菜单在当前窗口显示n菜单名是在“菜单编辑器”窗口定义的主菜单名,是必有的,其它参数都是可选的nx,y参数指定弹出菜单显示位置的横坐标和纵坐标,如省略这两个参数,在鼠标指针当前位置显示弹出菜单nFlags参数用来指定弹出式菜单的位置及响应鼠标操作的行为,是一个数值或符号常量,有两组值,如果要同时指定位置和行为两类参数,只要把两个参数的数值相加,如果使用常量,两个常量中间用Or连接。PopupMenu方法常量值说明位置VbPopupMenuLeftAlign0(缺省)X坐标确定菜单左边界VbPopupMenuCenterAlign4X坐标确定菜单中间位置VbPopupMenuRightAlign8X坐标确定菜单右边界行为VbPopupMenuLeftButton0(缺省)只能单击鼠标左键选择菜单命令VbPopupMenuRightButton2单击鼠标左键和右键都能选择菜单命令n 弹出式菜单的PopupMenu方法一般用在MouseDown事件上,通常通过单击鼠标右键显示弹出式菜单n 可用语句“If button=2 then PopupMenu 菜单名”实现通过单击鼠标右键响应MouseDown事件。弹出式菜单-例设计一个弹出式菜单,用来改变标签中文本的字体、字号和加粗 标题名称索引可见弹出菜单PopUpFalse.楷体Pop0True.隶书Pop1True.24Pop2True.36Pop3True.加粗Pop4True弹出式菜单-例Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then PopupMenu Popup End IfEnd SubPrivate Sub Pop_Click(Index As Integer) Select Case Index Case 0 Label1.FontName = 楷体楷体_GB2312 Case 1 Label1.FontName = 隶书隶书 Case 2 Label1.FontSize = 18 Case 3 Label1.FontSize = 24 Case 4 Label1.FontBold = Not Label1.FontBold End SelectEnd Sub
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号