第六章 响应鼠标和键盘事件.ppt47
合集下载
《鼠标键盘和OLE》PPT课件
'在图片框中释放鼠标键 If Button = 1 Then Select Case C1 Case 1 Picture1.Line (X1, Y1)-(X, Y) Case 2 Picture1.Line (X1, Y1)-(X, Y), , B End Select End If
End Sub
Private Sub Form_Load() '装载窗体
MousePionter属性的设置值与形状如表9.3所示。
9.1.2 改变鼠标指针
• 表9.3 MousePionter属性值
常数
值
描述
vbDefault
0
VbArrow
1
VbCrosshair
2
VbIbeam
3
VbIconPointer
4
VbSizePointer
5
VbSizeNESW
6
VbSizeNS
C1 = 0 End Sub
9.1.1 鼠标事件
3.MouseMove事件 MouseMove事件是鼠标在屏幕上移动时触发的,窗体和控件都能识别
MouseMove事件, 当鼠标指针在对象的边界范围内时该对象就能接收 MouseMove事件,除非有另一个对象捕获了鼠标。
当移动鼠标时, Button参数对于MouseMove事件与MouseDown和MouseUp事件不同, MouseMove事件的Button值表示所有按键的状态,而MouseDown和MouseUp事件 的Button的值无法检测是否同时按下两个以上的按键。 【例9-2】在图片框中绘制连续的线和方块。 使用MouseMove事件可以连续地画线和方块,当鼠标移动时在不断触发的 MouseMove事件中画线和方块。运行界面如图9.3所示。 程序代码如下。
End Sub
Private Sub Form_Load() '装载窗体
MousePionter属性的设置值与形状如表9.3所示。
9.1.2 改变鼠标指针
• 表9.3 MousePionter属性值
常数
值
描述
vbDefault
0
VbArrow
1
VbCrosshair
2
VbIbeam
3
VbIconPointer
4
VbSizePointer
5
VbSizeNESW
6
VbSizeNS
C1 = 0 End Sub
9.1.1 鼠标事件
3.MouseMove事件 MouseMove事件是鼠标在屏幕上移动时触发的,窗体和控件都能识别
MouseMove事件, 当鼠标指针在对象的边界范围内时该对象就能接收 MouseMove事件,除非有另一个对象捕获了鼠标。
当移动鼠标时, Button参数对于MouseMove事件与MouseDown和MouseUp事件不同, MouseMove事件的Button值表示所有按键的状态,而MouseDown和MouseUp事件 的Button的值无法检测是否同时按下两个以上的按键。 【例9-2】在图片框中绘制连续的线和方块。 使用MouseMove事件可以连续地画线和方块,当鼠标移动时在不断触发的 MouseMove事件中画线和方块。运行界面如图9.3所示。 程序代码如下。
第6章 键盘和鼠标事件
6.1
2019/2/12
2
Visual Basic程序设计教程
6.1 键盘事件
程序运行时,用户进行键盘操作,就会产
生键盘事件,由当前获得焦点的对象,来 响应键盘事件。 本节包括以下内容:
KeyPress事件 6.1.2 KeyDown事件和KeyUp事件
6.1.1
2019/2/12
3
22
Visual Basic程序设计教程
例6-2(语句-1)
程序代码如下:
Dim
BeginNow As Boolean Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) BeginNow = True Form1.DrawWidth = 3 Form1.CurrentX = X ‘设置窗体的当前坐标属性 Form1.CurrentY = Y End Sub
2019/2/12
21
Visual Basic程序设计教程
例6-2(界面)
【例6-2】使用MouseUp、MouseDown和
MouseMove事件,编写一个在窗体上用鼠 标绘图的简单程序。在窗体上按住鼠标按 键,移动鼠标时开始绘画,释放按钮时停 止绘画。程序运行界面如图6-2所示。
2019/2/12
17
Visual Basic程序设计教程
6.2.1 MouseMove事件
参数说明: ① Button参数是表示按下或松开鼠标哪个按键。 Button取值与对应按键描述如表6-3所示。 ② Shift:通过Shift参数表示在按钮被按下或松开的情 况下键盘的Shift、Ctrl和Alt键的状态,它的取值为 0~7的整数,与前面KeyDown、KeyUp事件中的Shift 参数完全相同,如表6-2所示。 ③ 参数X、Y:鼠标指针的位置。X和Y的值是使用该 对象的坐标系统表示鼠标指针当前的位置。
2019/2/12
2
Visual Basic程序设计教程
6.1 键盘事件
程序运行时,用户进行键盘操作,就会产
生键盘事件,由当前获得焦点的对象,来 响应键盘事件。 本节包括以下内容:
KeyPress事件 6.1.2 KeyDown事件和KeyUp事件
6.1.1
2019/2/12
3
22
Visual Basic程序设计教程
例6-2(语句-1)
程序代码如下:
Dim
BeginNow As Boolean Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) BeginNow = True Form1.DrawWidth = 3 Form1.CurrentX = X ‘设置窗体的当前坐标属性 Form1.CurrentY = Y End Sub
2019/2/12
21
Visual Basic程序设计教程
例6-2(界面)
【例6-2】使用MouseUp、MouseDown和
MouseMove事件,编写一个在窗体上用鼠 标绘图的简单程序。在窗体上按住鼠标按 键,移动鼠标时开始绘画,释放按钮时停 止绘画。程序运行界面如图6-2所示。
2019/2/12
17
Visual Basic程序设计教程
6.2.1 MouseMove事件
参数说明: ① Button参数是表示按下或松开鼠标哪个按键。 Button取值与对应按键描述如表6-3所示。 ② Shift:通过Shift参数表示在按钮被按下或松开的情 况下键盘的Shift、Ctrl和Alt键的状态,它的取值为 0~7的整数,与前面KeyDown、KeyUp事件中的Shift 参数完全相同,如表6-2所示。 ③ 参数X、Y:鼠标指针的位置。X和Y的值是使用该 对象的坐标系统表示鼠标指针当前的位置。
鼠标和键盘事件
第14页
5、标签数组的使用 Label[] lblArray; lblArray; lblArray = new Label[] { label1, label4, label5, label4 label5 label6 label7 label8 label6, label7, label8 }; 将所有label1的地方外层加循环 的地方外层加循环, label1改为 将所有label1的地方外层加循环,将label1改为 lblArray[i]
第9页
【打字游戏】 打字游戏】
要使窗体在可以获得焦点的控件之前截获键盘事件, 要使窗体在可以获得焦点的控件之前截获键盘事件, 应该将窗体的KeyPreview属性设为 属性设为true。 应该将窗体的 属性设为 。 (1)窗体的KeyPreview属性设为 )窗体的 属性设为true 属性设为 (2)int score //表示得分 ) 表示得分
第11页
2、标签上文字的获取 假设范围为英文字母A 假设范围为英文字母A—Z。 Random aa=new Random(); label1.Text= ( (char) aa.Next(65,91)).ToString();
第12页
3、键盘事件 private void Form1_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == char.Parse(label1.Text) || e.KeyChar == char.Parse(label1.Text.ToLower())) { score += 10; label3.Text = score.ToString(); label1.Text = ((char)aa.Next(65, 91)).ToString(); label1.Top = 20问题 1、鼠标的位置 、 2、哪个鼠标按键按动 、
键盘和鼠标事件
注意同时按下多个时shift的值是按下单个值的相加 的值是按下单个值的相加 注意同时按下多个时
说明: 说明: 大部分的按键在VB中都定义了常量, 中都定义了常量 ④大部分的按键在 中都定义了常量,例 键的常量是vbKeyF1,Tab键的常量 如F1键的常量是 键的常量是 , 键的常量 是vbKeyTab,Home键的常量 , 键的常量 vbKeyHome. 这些常量可以代替 这些常量可以代替keycode 的值在程序中直接使用
Shift参数值
十进制数 0 1 2 4 3 5 6 7 二进制数 000 001 010 100 011 101 110 111 转换键状态 没有按下转换键 只按下Shift键 键 只按下 只按下Ctrl键 键 只按下 只按下Alt键 只按下 键 同时按下Shift和Ctrl键 和 同时按下 键 同时按下Shift和Alt键 和 键 同时按下 同时按下Ctrl和Alt键 和 键 同时按下 三个转换键全都按下
Case vbKeyHome: TxtShow.Text = TxtShow.Text & vbCrLf & "按下 & ShiftStatus(Shift) & " 按下" 按下 功能键Home" 功能键 Case vbKeyPageUp: TxtShow.Text = TxtShow.Text & vbCrLf & "按下 & ShiftStatus(Shift) & "功能键 按下" 按下 功能键 PageUp" End Select End Sub
利用KeyPress事件对键盘输入的值取舍。 事件对键盘输入的值取舍。 例如 :利用 事件对键盘输入的值取舍 程序运行后要求输入大写字母, 程序运行后要求输入大写字母,如果输入的是其 它字符就响铃报警,设计界面如下图: 它字符就响铃报警,设计界面如下图:
第6章 Windows应用程序对键盘与鼠标的响应-PPT课件
//输入位置为本行的起始位置
break;
case VK_DELETE:
//处理按下键为Delete时的消息
if(nArrayPos==nNumChar) //输入位置处于本行的末尾
MessageBox(hWnd,
"缓冲区已空,没有字符可供删除",NULL,MB_OK);
else
{
for(x=nArrayPos;x<nNumChar;x=x+1)
若字符缓冲区中已没有任 何字符,此时按下了 Delete键,则出现(5)号错 误提示信息
long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam)
{
#define BufSize 30
//设置存放字符的缓冲区大小
//设置静态字符数组,存放输入的字符,字符个数不能超出缓冲区大小
操作系统在接收到键盘输入后,还要决定哪一个应用程序将响应输入
Windows系统把消息发送给具有“输入焦点(input focus)的窗口
应用程序一般有几个窗 口,但当按下某一个键 时,只有一个窗口能接 收到该键盘消息,接收 这个键盘消息的窗口称 为有“输入焦点”的窗口
有“输入焦点” 的窗口应是活 动窗口或者活 动窗口的子窗口
12
含义 非系统字符 非系统死字符 系统字符 系统死字符
6.2 键盘操作应用举例
【例6-1】本例演示键盘输入时所产生的消息序列并在窗口的客 户区显示对应的字符。
13
用户窗口区输入“这是一 个有关键盘操作的示例程 序”的字符串
程序中缓冲区大小只设30 个字符,当缓冲区满时若 再输入任何字符,就出现 (1)号错误提示
项目十 鼠标和键盘事件的响应
else if(e.getKeyChar()=='b'||e.getKeyChar()=='B') c=Color.blue;
else c=Color.black;
repaint(); }} public void paint(Graphics g) {
g.setColor(c); g.fillOval(60,60,100,100); } public static void main(String args[]){ new hh(); } }
(4)mouseExited(MouseEvent)方法,鼠标指针离开容器时, 接口监视器发现这个事件后自动调用这个方法。
new hh(); } }
10.2.3 键盘适配器类KeyAdapter
使用KeyListener接口时,即使有些方法不使用也必须在 程序中写出接口的所有方法,因此比较麻烦,而 java.awt.event.keyAdapter类本身就使用了KeyListener接口, 并对接口的三个方法增加了空方法体,因此使用keyAdapter 类时不必像使用接口那样实现所有方法,只需覆盖要响应的 键盘事件方法即可。
④事件监听器监听到事件后,会根据事件的类型调用相应的 事件处理方法。
事件源
产生事 件
事件 1
捕获事件
监视器1
事件 2
监视器2
图10-1 事件处理模型
事件处 理
事件处 理
1.java.awt.event包
(1)文本框回车、按钮单击、计时器、菜单项 引发动作事件:java.awt.event.ActionEvent 处理事件的接口:java.awt.event.ActionListener 接口中的方法:public void actionPerformed(ActionEvent event) (2)单选按钮、多选按钮、下拉列表 引发选项事件:java.awt.event.ItemEvent 处理事件的接口:java.awt.event.ItemListener 接口中的方法:public void itemStateChanged(ItemEvent event)
键盘与鼠标事件ppt课件
第9章 键盘与鼠标事件
1
章节分布
1 键盘事件
2 鼠标事件
2
8.1 键盘事件
KeyPress事件过程 KeyDown事件过程
KeyUp事件过程
键盘事件
3
8.1.1 KeyPress事件过程
• 触发时刻:当按下键盘上某个键时,将触 发KeyPress;
• 服务对象:窗体、复选框、组合框、命令 按钮、列表框、
正确,在MouseMove中,可以对Button进行累加。
MouseMove:If (Button And 3)=3 Then “同时按下左、右两键”
正确,两种情况,同时按左右键或三个键都按下。
13
• 应用举例 • Example 8.4:编写程序,在窗体上画
圆,要求:按着右键移动鼠标,则可以画 圆;否则不能画圆。
Single)
Integer, x As Single, y As
…
{ EndBuStut,即1,按下鼠标左键 010,即2,按下鼠标右键 100,即4,按下鼠标中间键
• - x, y:鼠标光标当前的位置;
12
需要注意的是,在MouseDown和 MouseUp中,Button值不能进行求和,即 Button值只能是3个值中的某一个,它不能 M反ous映eD是ow否n:同If B时ut按ton下=3 了The鼠n “标同时上按的下多左、个右键两键;”对 于MouseMove来错误说,在,Mo可use以Dow通n中过,不B能u对ttBoutnto参n进行数累加。 M判ous断eM按ov下e:一If B个utt或on=同3 T时he按n “下同时多按个下左键、。右两键”
14
• 按下鼠标键事件过程
Sub Form_MouseDown (Button As Integer, Shift
1
章节分布
1 键盘事件
2 鼠标事件
2
8.1 键盘事件
KeyPress事件过程 KeyDown事件过程
KeyUp事件过程
键盘事件
3
8.1.1 KeyPress事件过程
• 触发时刻:当按下键盘上某个键时,将触 发KeyPress;
• 服务对象:窗体、复选框、组合框、命令 按钮、列表框、
正确,在MouseMove中,可以对Button进行累加。
MouseMove:If (Button And 3)=3 Then “同时按下左、右两键”
正确,两种情况,同时按左右键或三个键都按下。
13
• 应用举例 • Example 8.4:编写程序,在窗体上画
圆,要求:按着右键移动鼠标,则可以画 圆;否则不能画圆。
Single)
Integer, x As Single, y As
…
{ EndBuStut,即1,按下鼠标左键 010,即2,按下鼠标右键 100,即4,按下鼠标中间键
• - x, y:鼠标光标当前的位置;
12
需要注意的是,在MouseDown和 MouseUp中,Button值不能进行求和,即 Button值只能是3个值中的某一个,它不能 M反ous映eD是ow否n:同If B时ut按ton下=3 了The鼠n “标同时上按的下多左、个右键两键;”对 于MouseMove来错误说,在,Mo可use以Dow通n中过,不B能u对ttBoutnto参n进行数累加。 M判ous断eM按ov下e:一If B个utt或on=同3 T时he按n “下同时多按个下左键、。右两键”
14
• 按下鼠标键事件过程
Sub Form_MouseDown (Button As Integer, Shift
键盘与鼠标响应-PPT课件
VK_BACK VK_TAB VK_RETURN VK_CONTROL VK_PAUSE VK_ESCAPE VK_NEXT VK_HOME VK_RIGHT VK_DOWN VK_A~VK_Z
退格键 制表键 回车键 Ctrl键 Pause键 Esc键 PageDown键 Home键 右箭头键 下箭头键 A~Z键
键盘消息
按键消息
系统按键消息 非系统按键消息
字符消息
系统字符消息 非系统字符消息
按键消息
当用户按下或松开一个键时产生按键消息。 系统按键消息:
使用Alt键与相关输入键产生的消息。由 windows系统内部直接处理,应用程序不必 处理。
WM_SYSKEYDOWN WM_SYSKEYUP
按下系统键 松开系统键
static int nYChar[Y]={0,0,0,0,0};
static int nNumChar[Y]={0,0,0,0,0}; static int nTextStartX[Y]={0,0,0,0,0}; static int nTextStartY[Y]={0,0,0,0,0};
static SIZE size[Y]; static int n=0;
非系统按键消息:
不使用Alt键组合的按键消息,由应用程 序处理,例如:Home,End,上、下、左、右移 动键。
WM_KEYDOWN WM_KEYUP
按下非系统键 松开非系统键
lParam表示的含义常用的有四位:
0~15位:重复计数位。当键一直被按着时, 计算按键次数 29位:标识该键是否与Alt键一同被按下。 30位:标识键的先前状态 31位:标识键被按下还是被松开。 按键消息的wParam包含了识别按下的键 的虚拟码。
VB——第6章 键盘和鼠标事件
Private Sub Text1_KeyPress (KeyAscii As Integer)
KeyAscii = Asc(Ucase(Chr(KeyAscii))) End Sub Visual Basic程序设计教程
中国石油大学(华东)石油工程学院
6.1 键盘事件
例6.1 通过编程序,在一个文本框(Text1)中限定只能 输入数字、小数点,只能响应BackSpace 键及回车键。
Visual Basic程序设计教程
中国石油大学(华东)石油工程学院
6.3 鼠标事件
6.3.2 OLE 拖放 (简略介绍,一般不作要求) Visual Basic支持OLE 拖放,使用这种强大且实用的工具, 可以在其他支持 OLE 拖放的应用程序(如 Windows 资源管
中国石油大学(华东)石油工程学院
6.3 拖放操作
6.3.1 控件 拖 放 (简略介绍,一般不作要求)
在运行时拖动控件,通常情况下并不能自动改变控件位置, 这就必须使用Visual Basic的拖放功能,通过编程,才能实 现在运行时拖动控件并改变其位置。把按下鼠标按钮并移动 控件的操作称为拖动,把释放按钮的操作称为放下。
中国石油大学(华东)石油工程学院
6.2 鼠标事件
大多数控件能够识别鼠标的MouseMove、MouseDown和 MouseUp事件,通过响应这些鼠标事件,能在应用程序对鼠 标位置及状态的变化作出响应操作。 MouseMove 每当鼠标指针移动到屏幕新位置时发生
MouseDown
MouseUp
Visual Basic程序设计教程
中国石油大学(华东)石油工程学院
说明:
•index:唯一标识控件数组中的控件。 •Source:被拖放的控件。 •x,y:鼠标在目标对象中的位置坐标。 •过程名中的Form或对象名即为目标对象。
KeyAscii = Asc(Ucase(Chr(KeyAscii))) End Sub Visual Basic程序设计教程
中国石油大学(华东)石油工程学院
6.1 键盘事件
例6.1 通过编程序,在一个文本框(Text1)中限定只能 输入数字、小数点,只能响应BackSpace 键及回车键。
Visual Basic程序设计教程
中国石油大学(华东)石油工程学院
6.3 鼠标事件
6.3.2 OLE 拖放 (简略介绍,一般不作要求) Visual Basic支持OLE 拖放,使用这种强大且实用的工具, 可以在其他支持 OLE 拖放的应用程序(如 Windows 资源管
中国石油大学(华东)石油工程学院
6.3 拖放操作
6.3.1 控件 拖 放 (简略介绍,一般不作要求)
在运行时拖动控件,通常情况下并不能自动改变控件位置, 这就必须使用Visual Basic的拖放功能,通过编程,才能实 现在运行时拖动控件并改变其位置。把按下鼠标按钮并移动 控件的操作称为拖动,把释放按钮的操作称为放下。
中国石油大学(华东)石油工程学院
6.2 鼠标事件
大多数控件能够识别鼠标的MouseMove、MouseDown和 MouseUp事件,通过响应这些鼠标事件,能在应用程序对鼠 标位置及状态的变化作出响应操作。 MouseMove 每当鼠标指针移动到屏幕新位置时发生
MouseDown
MouseUp
Visual Basic程序设计教程
中国石油大学(华东)石油工程学院
说明:
•index:唯一标识控件数组中的控件。 •Source:被拖放的控件。 •x,y:鼠标在目标对象中的位置坐标。 •过程名中的Form或对象名即为目标对象。
6Javascript事件处理精品PPT课件
格式: <tag on事件=“<语句组>|<函数名>”>
事件处理举例
❖将特定的代码放置在其所处对象的事件处 理器中
例1: <body onload="alert('建议浏览器的分辨率: 800x600');"> <body onload="var str='建议浏览器的分辨率: 800x600'; alert(str); ">
事件处理举例
❖例2: <script> function show(){ var str=“建议浏览器的分辨率:800x600”; alert(str); } //如果没有参数,函数()省略
❖document.onload=show; ❖</script>
如何编写事件处理程序(3)
❖三 编写特定对象特定事件的 JavaScript。 这种方法用得比较少,但是在某些场合还 是很好用的。方法是:
常见事件--列表3
属性 onreset onresize onselect onsubmit onunload
当以下情况发生时,出现此事件 重置按钮被点击 窗口或框架被调整尺寸 文本被选定 提交按钮被点击 用户退出页面
FF N IE 1 34 1 44 1 23 1 23 1 23
鼠标和键盘事件
WEB基础
JavaScript-06 事件处理
目标
❖了解什么是事件以及事件的调用 ❖了解常用事件 ❖掌握鼠标键盘事件 ❖掌握页面事件 ❖掌握表单事件
事件概述
❖用户与网页交互时产生的操作,称为事件。
❖事件可以由用户引发,也可能是页面发生 改变,甚至还有你看不见的事件(如Ajax的 交互进度改变)。
事件处理举例
❖将特定的代码放置在其所处对象的事件处 理器中
例1: <body onload="alert('建议浏览器的分辨率: 800x600');"> <body onload="var str='建议浏览器的分辨率: 800x600'; alert(str); ">
事件处理举例
❖例2: <script> function show(){ var str=“建议浏览器的分辨率:800x600”; alert(str); } //如果没有参数,函数()省略
❖document.onload=show; ❖</script>
如何编写事件处理程序(3)
❖三 编写特定对象特定事件的 JavaScript。 这种方法用得比较少,但是在某些场合还 是很好用的。方法是:
常见事件--列表3
属性 onreset onresize onselect onsubmit onunload
当以下情况发生时,出现此事件 重置按钮被点击 窗口或框架被调整尺寸 文本被选定 提交按钮被点击 用户退出页面
FF N IE 1 34 1 44 1 23 1 23 1 23
鼠标和键盘事件
WEB基础
JavaScript-06 事件处理
目标
❖了解什么是事件以及事件的调用 ❖了解常用事件 ❖掌握鼠标键盘事件 ❖掌握页面事件 ❖掌握表单事件
事件概述
❖用户与网页交互时产生的操作,称为事件。
❖事件可以由用户引发,也可能是页面发生 改变,甚至还有你看不见的事件(如Ajax的 交互进度改变)。
