vb键盘与鼠标事件过程ppt课件_第1页
vb键盘与鼠标事件过程ppt课件_第2页
vb键盘与鼠标事件过程ppt课件_第3页
vb键盘与鼠标事件过程ppt课件_第4页
vb键盘与鼠标事件过程ppt课件_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

.,第11章键盘与鼠标事件过程,第11章键盘与鼠标事件过程,除了响应鼠标的单击(Click)或双击(DblClick)事件以外,VisualBasic应用程序还能响应多种鼠标事件和键盘事件。例如,窗体、图片框与图象控件都能检测鼠标指针的位置,并可判定其左、右键是否已按下,还能响应鼠标按钮与Shift、Ctrl或Alt键的各种组合。利用键盘事件可以编程响应多种键盘操作,也可以解释、处理ASCII字符。,11.1键盘事件键盘事件是指能够响应各种按键操作的KeyDown、KeyUp及KeyPress事件,可以把编写响应击键事件的应用程序看作是编写键盘处理器。键盘处理器可在控件级和窗体级这两个层次上工作。有了控件级(低级)处理器就可对特定控件编程。例如,可能希望将Textbox这个控件中的输入文本都转换成大写字符。而有了窗体级处理器就可使窗体首先响应击键事件,于是就可将焦点转换成窗体的控件并重复或启动事件。,11.1.1KeyPress事件KeyPress事件当用户按下和松开一个ASCII字符键时发生。该事件被触发时,被按键的ASCII码将自动传递给事件过程的KeyAscii参数。在程序中,通过访问该参数,即可获知用户按下了哪一个键,并可识别字母的大小写。其语法格式为:PrivateSub对象名_KeyPress(keyasciiAsInteger)其中参数keyascii是被按下字符键的标准ASCII码。对它进行改变可给对象发送一个不同的字符。将keyascii改变为0时可取消击键,这样一来对象便接收不到字符。KeyPress事件可以引用任何可打印的键盘字符、来自标准字母表的字符或少数几个特殊字符之一的字符与Ctrl键的组合、Enter或Backspace键。,【例11-1】可以显示按键及其ASCII码的程序(如图11-1)。图11-1KeyPress事件接受的按键程序的代码部分:复选框的Click事件代码:PrivateSubCheck1_Click()Text1.SetFocusEndSub,文本(输入)框Text1的KeyPress事件代码:PrivateSubText1_KeyPress(KeyAsciiAsInteger)Text2.Text=KeyAsciiSelectCaseKeyAsciiCase0To7,9To12,14To26,28To31Text1.Text=Text3.Text=Ctrl+&Chr(64+KeyAscii)Case8Text3.Text=Ctrl+&Chr(64+KeyAscii)&或退格键Case13Text1.Text=Text3.Text=Ctrl+&Chr(64+KeyAscii)&或回车键Case27Text1.Text=Text3.Text=Ctrl+&Chr(64+KeyAscii)&或Esc键CaseElseText3.Text=Chr(KeyAscii)EndSelectIfCheck1.Value=0ThenKeyAscii=0EndIfEndSub,11.1.2KeyDown和KeyUp事件KeyDown和KeyUp事件是当一个对象具有焦点时按下或松开一个键时发生的。当控制焦点位于某对象上时,按下键盘中的任意一键,则会在该对象上触发产生KeyDown事件,当释放该键时,将触发产生KeyUp事件,之后产生KeyPress事件。其语法格式为:PrivateSub对象名_KeyDown(KeyCodeAsInteger,ShiftAsInteger)PrivateSub对象名_KeyUp(KeyCodeAsInteger,ShiftAsInteger)其中参数KeyCode参数项用于返回被按键的扫描代码。由于扫描码主要反映物理键位,因此通过该参数不能区分字母大小写。,11.1.2KeyDown和KeyUp事件shift参数项返回一个整数,该整数相应于Shift、Ctrl和Alt键的状态。shift参数等于1、2和4分别表示Shift、Ctrl和Alt键被按下,而三数的部分和表示三个按钮部分地被同时按下。因此,可结合该参数项来判断输入字母的大小写。应当使用KeyDown和KeyUp事件过程来处理任何不被KeyPress识别的击键,诸如:功能键、编辑键、定位键以及任何这些键和键盘换档键的组合等。与KeyDown和KeyUp事件不同的是,KeyPress不显示键盘的物理状态,而只是传递一个字符。,【例11-2】可以测试功能键与控制键的程序(如图11-2)。程序的代码部分:文本(输入)框Text1的Keydown事件代码:PrivateSubText1_Keydown(KeyCodeAsInteger,ShiftAsInteger)Text2.Text=Text2.Text&Str(KeyCode)&,IfKeyCode111AndKeyCode0,1,0)Check2.Value=IIf(ShiftAndvbCtrlMask)0,1,0)Check3.Value=IIf(ShiftAndvbAltMask)0,1,0)EndSub,命令按钮(清除)Command1的Click事件代码:PrivateSubCommand1_Click()Text1.Text=Text2.Text=Text1.SetFocusEndSub图11-2测试功能键与控制键,11.1.3使用KeyPreview属性KeyPreview属性返回或设置一个值,以决定是否在控件的键盘事件(KeyDown、KeyUp和KeyPress)之前激活窗体的键盘事件。其语法为:对象名.KeyPreview=boolean其中,Boolean是布尔表达式,指定如何接收事件:当取值为False(缺省值)时,活动控件接收键盘事件,而窗体不接收;当取值为True时,窗体先接收键盘事件,然后是活动控件接收事件。,11.2鼠标事件在前面的例子中曾多次使用鼠标事件,即单击(Click)事件和双击(DblClick)事件,这些事件是通过快速按下并松开鼠标键而产生的。除此之外,VB还可以通过MouseDown、MouseUp、MouseMove事件使应用程序对鼠标位置及状态的变化作出响应(其中不包括拖放事件。其实,Click事件是由MouseDown和MouseUp组成,因此MouseDown和MouseUp是更基本的鼠标事件。,11.2.1MouseDown和MouseUp事件MouseDown和MouseUp事件当按下(MouseDown)或者释放(MouseUp)鼠标按钮时发生。其语法为:PrivateSub对象名_MouseDown(buttonAsInteger,shiftAsInteger,xAsSingle,yAsSingle)PrivateSub对象名_MouseUp(buttonAsInteger,shiftAsInteger,xAsSingle,yAsSingle)其中:参数button返回一个整数,button参数的值分别等于1,2,和4时,相应于左按钮、右按钮以及中间按钮的动作。注意只能有一个按钮引起事件。参数shift返回一个整数,在button参数指定的按钮被按下或者被释放的情况下,该整数相应于Shift、Ctrl和Alt键的状态。,11.2.1MouseDown和MouseUp事件MouseDown和MouseUp事件当按下(MouseDown)或者释放(MouseUp)鼠标按钮时发生。其语法为:PrivateSub对象名_MouseDown(buttonAsInteger,shiftAsInteger,xAsSingle,yAsSingle)PrivateSub对象名_MouseUp(buttonAsInteger,shiftAsInteger,xAsSingle,yAsSingle)参数x,y返回一个指定鼠标指针当前位置的数。x和y的值所表示的总是通过该对象ScaleHeight,ScaleWidth,ScaleLeft,和ScaleTop属性所建立的坐标系统的方式。,11.2.2MouseMove事件MouseMove事件在移动鼠标时发生。其语法格式为:PrivateSub对象名_MouseMove(buttonAsInteger,shiftAsInteger,xAsSingle,yAsSingle)其中参数描述同MouseDown和MouseUp事件。MouseMove事件伴随鼠标指针在对象间移动时连续不断地产生。除非有另一个对象捕获了鼠标,否则,当鼠标位置在对象的边界范围内时该对象就能接收MouseMove事件。,11.2.3自定义鼠标指针在VB中,可以通过属性设置来改变鼠标指针的形状。鼠标指针的改变可以告知用户诸多信息,例如,正在进行长时间的后台任务,调整某个控件或窗口的大小,某控件不支持拖放操作等等。1.MousePointer属性的设置MousePointer属性是一个整数,取值为015,可用MousePointer属性在16个预定义指针中任选一个。这些指针表示各种系统事件和过程,表11-1描述了各种指针及其在应用程序中的可能作用。,表11-1MousePointer属性值的描述,2.图标和光标用自定义图标或光标可进一步改变应用程序的外观和功能。可以设置鼠标指针来显示自定义图标或光标,它们可以表示鼠标的状态及当前的输入位置。为使用自定义图标或光标,应设置MousePointer和MouseIcon属性。其中MouseIcon属性设置为自定义图标或光标文件,而MousePointer属性则设置成99-Custom。在将MousePointer属性设置成99-Custom时,如果未在MouseIcon上加载图标,则使用缺省的鼠标指针。同样,如果未将MousePointer属性设置成99-Custom,则将忽略MouseIcon的设置。,11.2.4使用鼠标事件【例11-3】使用鼠标事件设计的画图小程序,如图11-3所示。图11-3小画板程序,编写窗体Form1的事件代码:装入(Load)事件:PrivateSubForm_Load()Me.AutoRedraw=TrueMe.Caption=小画板-&未命名EndSub鼠标按下(MouseDown)事件:PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=1ThenCurrentX=X:CurrentY=YEndIfEndSub,鼠标移动(MouseMove)事件:PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=1ThenMe.Line(CurrentX,CurrentY)-(X,Y)CurrentX=X:CurrentY=YEndIfEndSub,编写菜单的事件代码:文件菜单的单击(Click)事件:PrivateSubfiles_Click(IndexAsInteger)SelectCaseIndexCase0Me.Picture=LoadPicture()Me.Caption=小画板-&未命名Case1CommonDialog1.ShowOpenMe.Picture=LoadPicture(CommonDialog1.FileName)Me.Caption=小画板-&CommonDialog1.FileNameCase2CommonDialog1.FileName=Mid(Me.Caption,5)CommonDialog1.ShowSaveSavePictureMe.Image,CommonDialog1.FileNameCase3EndEndSelectEndSub,画笔菜单项的单击(Click)事件:PrivateSubpencil_Click()Ifpencil.Caption=画笔Thenpen

温馨提示

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

评论

0/150

提交评论