鼠标键盘对话框菜单.ppt_第1页
鼠标键盘对话框菜单.ppt_第2页
鼠标键盘对话框菜单.ppt_第3页
鼠标键盘对话框菜单.ppt_第4页
鼠标键盘对话框菜单.ppt_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

第十讲,界面设计,内容提要,鼠标和键盘 通用对话框 制作菜单 下拉菜单 弹出式菜单,鼠标指针形状,鼠标,MousePointer属性决定鼠标指针进入控件区域时显示的形状。,对象名.MousePointer = 值,鼠标指针形状,鼠标,自定义鼠标指针,鼠标,当MousePointer属性被设置为99时,可利用MouseIcon属性自定义鼠标指针。,对象名.MouseIcon=LoadPicture(文件路径),对象名.MouseIcon=另一对象名.Picture,MousePointer = 99 Form1.MouseIcon = LoadPicture(“fire.ico“),可在设计阶段通过属性窗口设置,也可在运行阶段通过代码设置,鼠标事件,鼠标,Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) End Sub Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) End Sub,鼠标事件过程中的参数,鼠标,Button参数,Button=1 左键被按下 Button=2 右键被按下 Button=4 中键被按下,1vbLeftButton 2vbRightButton 4vbMiddleButton,使用符号常数,鼠标事件过程中的参数,鼠标,Shift参数,Shift=1 Shift键被按下 Shift=2 Ctrl键被按下 Shift=4 Alt键被按下,Shift=3 按下Shift+Ctrl,1vbShiftMask 2vbCtrlMask 4vbAltMask,使用符号常数,鼠标事件过程中的参数,X,Y参数 对应当前鼠标指针所在的坐标,与X,Y相关的属性是 CurrentX ,CurrentY。 CurrentX ,CurrentY记录绘图命令运行完毕时的X,Y值。其默认值是0,0。,Line -(500,500),画(0,0)到(500,500)的直线, CurrentX=500 CurrentY=500,鼠标,鼠标事件-例1,Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Line -(X, Y) Circle (X, Y), 40 End Sub,移动鼠标时画图,鼠标,鼠标事件-例2,单击鼠标左键,随手画,单击鼠标右键,画直线,Dim drawit As Boolean,Private 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 If End Sub,鼠标,鼠标事件-例2,Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If drawit Then Line -(X, Y) End If End Sub,Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 1 Then drawit = False End If End Sub,鼠标,键盘事件,键盘,KeyPress事件 按下并释放一个能产生ASCII码的键时触发 KeyDown事件 按下键盘上任何一个键时触发 KeyUp事件 释放键盘上任何一个键时触发,KeyPress事件,Private Sub form_KeyPress(KeyAscii As Integer) End Sub,Private Sub 控件名_KeyPress(Index as Integer, KeyAscii As Integer) End Sub,KeyAscii 返回按下键的Ascii 码 默认情况下,只有窗体上具有焦点的对象才能接收KeyPress事件,而窗体本身不会接收KeyPress事件 窗体接收KeyPress事件 窗体上没有可视和有效的控件 窗体的KeyPreview属性设置为True,KeyPreview 属性,窗体的KeyPreview属性设置为True时,窗体先接收KeyPress事件,然后控件继续接收该事件。,假定窗体KeyPreview为True,并有下面事件过程, 则当文本框中输入“1”时,实际上是得到的是“3”,Sub Form_KeyPress(KeyAscii As Integer) KeyAscii = KeyAscii + 1 End Sub,Sub Text1_KeyPress(KeyAscii As Integer) KeyAscii = KeyAscii + 1 End 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 If End Sub,Private Sub Text1_KeyPress(KeyAscii As Integer) KeyAscii = 0 End Sub,把窗体的KeyPreview 属性设置为 True,KeyDown和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),Shift参数与鼠标事件过程的Shift相同 KeyCode:键盘扫描码,KeyAscii和 KeyCode区别,拖放,拖放是一种重要的鼠标操作,VB提供的与鼠标拖放有关的属性、方法和事件为: DragMode属性 有两个取值:0和1(缺省是) 取0时,手工拖动模式。必须在MouseDown事件过程中,使用Drag方法启动拖操作 取1时,自动拖动模式,该控件不再接收Click和MouseDown事件。,拖放,Drag方法 用于除Line、Menu 、Shape、Timer、CommonDialog之外的任何控件的开始、结束、取消拖动操作。,对象名称.drag action,action参数取值: 0- 取消拖放操作,不调用DragDrop事件过程 1-开始拖放操作,调用DragDrop事件过程,缺省设置 2-结束拖放操作,调用DragDrop事件过程,拖放,DragOver事件 当拖动源对象到某个对象上时,触发该对象的DragOver事件,Sub 对象名_DragOver(Source As Control,X As Single,Y As Single, State As Integer) End Sub,Source是被拖动的控件,含有被拖动对象的属性 x,y为当前鼠标指针的坐标位置 State是一个整数,可取,,拖放,DragDrop事件 当拖动源对象到某个对象上释放鼠标时,或使用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, Y End Sub,Picture1 的DragMode=1,拖放例,手动拖动模拟文件操作:从文件夹中取出文件,放入文件柜,放入之前先打开抽屉。,拖放例,Private Sub Command1_Click() End End 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 If End Sub,Private 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 If End Sub,通用对话框,Visual Basic的通用对话框控件提供了一组标准的Windows对话框,分别是:“打开” 、“另存为”、“颜色”、“字体”、“打印”和“帮助”对话框 通用对话框控件是ActiveX控件, 位于“Microsoft CommonDialog Control 6.0” 中。 在设计阶段,通用对话框以图标形式显示在窗体上,其大小不能改变,在运行阶段,通用对话框隐藏。,通用对话框,需要用Action 属性或Show方法激活方可调出相应的对话框,Action属性只能在运行阶段用程序设置或引用 通用对话框只是输入/输出的界面,不能真正实现如文件打开、保存等操作,要实现这些功能必须要编写程序。,通用对话框属性,DialogTitle属性 用于设置对话框的标题 CancelError属性 用于设置当用户单击通用对话框的“取消”按钮时,是否产生出错信息,有两个取值: True和False True:出现错误警告。 False:不出现错误警告,缺省设置。,Action属性,“打开”对话框,用来遍历整个磁盘,找到所需的文件,是Windows应用程序中常用的对话框,具有通用对话框的通用属性 FileName属性 用于设置或返回要打开文件的路径及文件名,属性值为字符串,“打开”对话框,Filter属性 用于指定过滤文件的类型,只有指定的文件类型,才出现在“文件类型”列表框中, 设计阶段:说明1| 文件类型1| 说明2| 文件类型2 运行阶段: 对话框名.Filter=“说明1| 文件类型1| 说明2| 文件类型2”,用于返回打开文件的文件名 在设计时无效,在运行时只读 与FileName属性不同之处是该属性不返回路径,FileTitle属性,“打开”对话框,FilterIndex属性 用来指定缺省的过滤器,用Filter属性设置多个过滤器后,每个过滤器自动获得一个值,第一个过滤器的值是1,第二个过滤器的值是2, InitDir属性 用于指定“打开”对话框中的初始目录,缺省显示当前目录,“另存为”对话框,是Windows存储文件时的一个标准界面,可供用户选择和输入保存文件的路径和文件名,具有通用对话框的通用属性 具有“打开”对话框的属性 DefaultExt属性 表示保存文件的缺省扩展名 当保存的文件没有扩展名时,自动给该文件添加由DefaultExt属性指定的扩展名,“打开”和“保存”对话框 例,图片浏览和保存功能,Private Sub Command1_Click() CommonDialog1.ShowOpen Image1.Picture = LoadPicture(CommonDialog1.FileName) End Sub,Private Sub Command2_Click() CommonDialog1.ShowSave SavePicture Image1.Picture, CommonDialog1.FileName End Sub,“颜色”对话框,是Windows环境下设置颜色的一个标准界面 具有通用对话框的通用属性 Color属性,用于设置初始颜色,并可返回用户所选择的颜色 Flags属性 用于设置“颜色”对话框的类型,有四种取值1、2、4、8 1:使Color属性定义的颜色在首次显示对话框时显示出来 2:打开完整的“颜色”对话框 4:只有基本颜色窗口,禁止打开自定义颜色窗口 8:显示一个“帮助”按钮,“字体”对话框,设置并返回所用字体的名字、字形、大小、效果和颜色 具有通用对话框的通用属性 Flags属性,设置通用对话框是否显示屏幕字体、打印机字体或两者皆有,是必须设置的属性,Flags属性必须是下列常数之一与其他选项之和: cdlCFScreenFonts或1:屏幕字体 cdklCFPrinterFonts或2:打印机字体 cdlCFBoth或3:两种字体都有,“字体”对话框,Flag属性设为259(3+256)是3与常数cdlcFEffects(256,允许中划线、下划线和颜色选项)之和,“字体”对话框中出现颜色、效果选项,Font属性集 包括六个属性,设置字体名称、大小、是否加粗、是否倾斜等,FontName FontSize FontBold,FontItalic FontStrikethru FontUnderline,Color属性 返回用户设置的字体颜色,在使用Color属性之前,必须确保Flags属性中含有cdlcFEffects值。,“颜色”和“字体”对话框-例,使用“颜色”对话框和“字体”对话框设置文本框的背景色、前景色和字体。“字体”对话框中要求出现效果和颜色选项,“颜色”和“字体”对话框-例,Private Sub Command1_Click() CommonDialog1.ShowColor Text1.BackColor = CommonDialog1.Color End Sub,Private Sub Command2_Click() CommonDialog1.ShowColor Text1.ForeColor = CommonDialog1.Color End Sub,Private 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.Color End Sub,菜单,菜单是Windows环境下应用程序的重要组成部分,有下拉菜单和弹出式菜单两种。,Visual Basic中,把每个菜单项和菜单名都看作是一个控件,并具备属性和事件,把每个菜单项都看成是一个命令按钮,可对其Click事件编制程序,使用“菜单编辑器”创建菜单,“工具”/“菜单编辑器”命令,“标题” :输入菜单或菜单项的名称 “名称”:输入菜单的控件名,用于在程序代码中访问菜单名或菜单项。,“标题”和“名称”属性是每个菜单名或菜单项必须要设置的,菜单制作的步骤,在“标题”文本框中输入菜单名或菜单项的名称 在“名称”文本框中输入菜单名或菜单项的控件名称 根据情况在属性区域中设置菜单名或菜单项的其它属性(可选) 单击“下一个”按钮,创建下一个菜单项,使用编辑区域的向右箭头和向左箭头设置菜单项的层次 重复上述四个步骤,直到完成所有菜单的设计 单击“确定”按钮,关闭“菜单编辑器”窗口,菜单编辑的说明,访问键的设置: 在“标题”文本框中菜单内容的后面输入连接符“&”,并在其后跟一个字母 分隔线的设置: 在 “标题”文本框中输入减号“-” 菜单项升级或降级: 编辑区域的左、右箭头使选中的菜单项增加或降低一个菜单级别,上下箭头可使选中的菜单项在同级菜单内向上或向下移动一个显示位置。 产生新菜单项: “下一个”按钮,菜单编辑-例1,创建一个简易文本编辑器,菜单编辑-例1,Private a As String,Private Sub EditCopy_Click() a = Text1.SelText editpaste.Enabled = True End Sub,Private Sub EditCut_Click() a = Text1.SelText Text1.SelText = “ editpaste.Enabled = True End Sub,Private Sub EditPaste_Click() Text1.SelText = a End Sub,Private Sub FontKaiti_Click() Text1.FontName = “楷体_GB2312“ End Sub,Private Sub FontLishu_Click() Text1.FontName = “隶书“ End Sub,Private Sub FontSize18_Click() Text1.fontsize = “18“ End Sub,Private Sub FontSize24_Click() Text1.fontsize = “24“ End Sub,菜单编辑-例1,Private Sub FontSize36_Click() Text1.fontsize = “36“ End Sub,Private Sub FontSize48_Click() Text1.fontsize = “48“ End Sub,Private Sub StyleBold_Click() Text1.FontBold = Not Text1.FontBold StyleBold.Checked = Not StyleBold.Checked End Sub,Private Sub StyleItalic_Click() Text1.FontItalic = Not Text1.FontItalic StyleItalic.Checked = Not StyleItalic.Checked End Sub,

温馨提示

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

最新文档

评论

0/150

提交评论