Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第11章 键盘与鼠标事件过程

上传人:E**** 文档编号:89183560 上传时间:2019-05-20 格式:PPT 页数:23 大小:253.50KB
返回 下载 相关 举报
Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第11章 键盘与鼠标事件过程_第1页
第1页 / 共23页
Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第11章 键盘与鼠标事件过程_第2页
第2页 / 共23页
Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第11章 键盘与鼠标事件过程_第3页
第3页 / 共23页
Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第11章 键盘与鼠标事件过程_第4页
第4页 / 共23页
Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第11章 键盘与鼠标事件过程_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第11章 键盘与鼠标事件过程》由会员分享,可在线阅读,更多相关《Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第11章 键盘与鼠标事件过程(23页珍藏版)》请在金锄头文库上搜索。

1、第11章 键盘与鼠标事件过程,第11章 键盘与鼠标事件过程,除了响应鼠标的单击(Click)或双击(DblClick)事件以外,Visual Basic应用程序还能响应多种鼠标事件和键盘事件。例如,窗体、图片框与图象控件都能检测鼠标指针的位置,并可判定其左、右键是否已按下,还能响应鼠标按钮与Shift、Ctrl或Alt键的各种组合。利用键盘事件可以编程响应多种键盘操作,也可以解释、处理ASCII字符。,11.1 键盘事件 键盘事件是指能够响应各种按键操作的KeyDown、KeyUp及KeyPress事件,可以把编写响应击键事件的应用程序看作是编写键盘处理器。键盘处理器可在控件级和窗体级这两个层

2、次上工作。有了控件级(低级)处理器就可对特定控件编程。例如,可能希望将Textbox这个控件中的输入文本都转换成大写字符。而有了窗体级处理器就可使窗体首先响应击键事件,于是就可将焦点转换成窗体的控件并重复或启动事件。,11.1.1 KeyPress事件 KeyPress事件当用户按下和松开一个ASCII字符键时发生。该事件被触发时,被按键的ASCII码将自动传递给事件过程的KeyAscii参数。在程序中,通过访问该参数,即可获知用户按下了哪一个键,并可识别字母的大小写。其语法格式为: Private Sub 对象名_KeyPress(keyascii As Integer) 其中参数keyas

3、cii是被按下字符键的标准ASCII码。对它进行改变可给对象发送一个不同的字符。将keyascii改变为0时可取消击键,这样一来对象便接收不到字符。 KeyPress事件可以引用任何可打印的键盘字符、来自标准字母表的字符或少数几个特殊字符之一的字符与Ctrl键的组合、Enter或Backspace键。,【例11-1】可以显示按键及其ASCII码的程序(如图11-1)。 图11-1 KeyPress事件接受的按键 程序的代码部分: 复选框的Click事件代码: Private Sub Check1_Click() Text1.SetFocus End Sub,文本(输入)框Text1的KeyPr

4、ess事件代码: Private Sub Text1_KeyPress(KeyAscii As Integer) Text2.Text = KeyAscii Select Case KeyAscii Case 0 To 7, 9 To 12, 14 To 26, 28 To 31 Text1.Text = “ Text3.Text = “Ctrl+“ & Chr(64 + KeyAscii) Case 8 Text3.Text = “Ctrl+“ & Chr(64 + KeyAscii) & “ 或 退格键“ Case 13 Text1.Text = “ Text3.Text = “Ctrl+

5、“ & Chr(64 + KeyAscii) & “ 或 回车键“ Case 27 Text1.Text = “ Text3.Text = “Ctrl+“ & Chr(64 + KeyAscii) & “ 或 Esc键“ Case Else Text3.Text = Chr(KeyAscii) End Select If Check1.Value = 0 Then KeyAscii = 0 End If End Sub,11.1.2 KeyDown和KeyUp事件 KeyDown和KeyUp事件是当一个对象具有焦点时按下或松开一个键时发生的。当控制焦点位于某对象上时,按下键盘中的任意一键,则会

6、在该对象上触发产生KeyDown事件,当释放该键时,将触发产生KeyUp事件,之后产生KeyPress事件。其语法格式为: Private Sub 对象名_KeyDown(KeyCode As Integer, Shift As Integer) Private Sub 对象名_KeyUp(KeyCode As Integer, Shift As Integer) 其中参数KeyCode参数项用于返回被按键的扫描代码。由于扫描码主要反映物理键位,因此通过该参数不能区分字母大小写。,11.1.2 KeyDown和KeyUp事件 shift参数项返回一个整数,该整数相应于Shift、Ctrl和Al

7、t键的状态。shift参数等于1、2和4分别表示Shift、Ctrl和Alt键被按下,而三数的部分和表示三个按钮部分地被同时按下。因此,可结合该参数项来判断输入字母的大小写。 应当使用KeyDown和KeyUp事件过程来处理任何不被KeyPress识别的击键,诸如:功能键、编辑键、定位键以及任何这些键和键盘换档键的组合等。与KeyDown和KeyUp事件不同的是,KeyPress不显示键盘的物理状态,而只是传递一个字符。,【例11-2】可以测试功能键与控制键的程序(如图11-2)。 程序的代码部分: 文本(输入)框Text1的Keydown事件代码: Private Sub Text1_Key

8、down(KeyCode As Integer, Shift As Integer) Text2.Text = Text2.Text & Str(KeyCode) & “,“ If KeyCode 111 And KeyCode 0, 1, 0) Check2.Value = IIf(Shift And vbCtrlMask) 0, 1, 0) Check3.Value = IIf(Shift And vbAltMask) 0, 1, 0) End Sub,命令按钮(清除)Command1 的 Click 事件代码: Private Sub Command1_Click() Text1.Tex

9、t = “ Text2.Text = “ Text1.SetFocus End Sub 图11-2 测试功能键与控制键,11.1.3 使用KeyPreview属性 KeyPreview 属性返回或设置一个值,以决定是否在控件的键盘事件(KeyDown、KeyUp 和 KeyPress)之前激活窗体的键盘事件。其语法为: 对象名.KeyPreview = boolean 其中,Boolean是布尔表达式,指定如何接收事件:当取值为False(缺省值)时,活动控件接收键盘事件,而窗体不接收;当取值为True时,窗体先接收键盘事件,然后是活动控件接收事件。,11.2 鼠标事件 在前面的例子中曾多次使

10、用鼠标事件,即单击(Click)事件和双击(DblClick)事件,这些事件是通过快速按下并松开鼠标键而产生的。除此之外,VB还可以通过MouseDown、MouseUp、MouseMove事件使应用程序对鼠标位置及状态的变化作出响应(其中不包括拖放事件。 其实,Click事件是由MouseDown和MouseUp组成,因此MouseDown和MouseUp是更基本的鼠标事件。,11.2.1 MouseDown和MouseUp事件 MouseDown和MouseUp 事件当按下(MouseDown)或者释放(MouseUp)鼠标按钮时发生。其语法为: Private Sub 对象名_Mouse

11、Down(button As Integer, shift As Integer, x As Single, y As Single) Private Sub 对象名_MouseUp(button As Integer, shift As Integer, x As Single, y As Single) 其中:参数button 返回一个整数,button参数的值分别等于1,2,和4时,相应于左按钮、右按钮以及中间按钮的动作。注意只能有一个按钮引起事件。 参数shift返回一个整数,在button参数指定的按钮被按下或者被释放的情况下,该整数相应于Shift、Ctrl和Alt键的状态。,11

12、.2.1 MouseDown和MouseUp事件 MouseDown和MouseUp 事件当按下(MouseDown)或者释放(MouseUp)鼠标按钮时发生。其语法为: Private Sub 对象名_MouseDown(button As Integer, shift As Integer, x As Single, y As Single) Private Sub 对象名_MouseUp(button As Integer, shift As Integer, x As Single, y As Single) 参数x,y返回一个指定鼠标指针当前位置的数。x和y的值所表示的总是通过该对象

13、ScaleHeight,ScaleWidth,ScaleLeft,和ScaleTop属性所建立的坐标系统的方式。,11.2.2 MouseMove事件 MouseMove 事件在移动鼠标时发生。其语法格式为: Private Sub 对象名_MouseMove(button As Integer, shift As Integer, x As Single, y As Single) 其中参数描述同MouseDown和MouseUp事件。 MouseMove事件伴随鼠标指针在对象间移动时连续不断地产生。除非有另一个对象捕获了鼠标,否则,当鼠标位置在对象的边界范围内时该对象就能接收MouseMo

14、ve事件。,11.2.3 自定义鼠标指针 在VB中,可以通过属性设置来改变鼠标指针的形状。鼠标指针的改变可以告知用户诸多信息,例如,正在进行长时间的后台任务,调整某个控件或窗口的大小,某控件不支持拖放操作等等。 1. MousePointer属性的设置 MousePointer属性是一个整数,取值为015,可用MousePointer属性在16个预定义指针中任选一个。这些指针表示各种系统事件和过程,表11-1描述了各种指针及其在应用程序中的可能作用。,表11-1 MousePointer属性值的描述,2. 图标和光标 用自定义图标或光标可进一步改变应用程序的外观和功能。可以设置鼠标指针来显示自

15、定义图标或光标,它们可以表示鼠标的状态及当前的输入位置。 为使用自定义图标或光标,应设置MousePointer和MouseIcon属性。其中MouseIcon属性设置为自定义图标或光标文件,而MousePointer 属性则设置成99 - Custom。 在将MousePointer属性设置成99 - Custom时,如果未在MouseIcon上加载图标,则使用缺省的鼠标指针。同样,如果未将MousePointer属性设置成99 - Custom,则将忽略 MouseIcon的设置。,11.2.4 使用鼠标事件 【例11-3】使用鼠标事件设计的画图小程序,如图11-3所示。 图11-3 小画

16、板程序,编写窗体Form1的事件代码: 装入(Load)事件: Private Sub Form_Load() Me.AutoRedraw = True Me.Caption = “小画板-“ & “未命名“ End Sub 鼠标按下(MouseDown)事件: Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 1 Then CurrentX = X: CurrentY = Y End If End Sub,鼠标移动(MouseMove)事件: Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 1 Then Me.Line (CurrentX, CurrentY)-(X, Y) CurrentX = X: CurrentY

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号