第八讲 键盘和鼠标事件

合集下载

键盘与鼠标消息

键盘与鼠标消息

键盘与鼠标消息主要内容⏹键盘消息⏹虚拟码⏹字符消息⏹鼠标消息⏹程序举例键盘消息的产生⏹键盘作为输入设备,是Windows应用程序的一个重要的输入手段,当用户按下或释放一个键时,键盘驱动程序Keyboard.drv中的中断处理程序对所击键进行编码并调用Windows用户模块USER.EXE的有关程序来生成键盘消息,并最终发送到应用程序的消息队列中等待处理,而处理这些消息则是由应用程序的窗口过程来具体完成。

⏹键盘上每一个有意义的键都对应着一个惟一的助记符,称为扫描码。

当用户在按下或释放一个键时,都会产生扫描码。

虽然扫描码可以用来作为键的标识,但它是依赖于具体的设备的,因此在应用程序中,使用的往往是与具体设备无关的虚拟码(虚拟码是与设备无关的标识码)。

键盘消息的产生和处理过程常用的虚拟码按键消息和字符消息鼠标消息⏹Windows是事件驱动、基于消息传递的操作系统。

当用户移动、按下或释放鼠标键时,都会产生鼠标消息,根据鼠标所处的位置不同,Windows下的鼠标消息也分为两大类:客户区域的鼠标消息及非客户区域的鼠标消息。

⏹Windows操作系统通过鼠标设备驱动程序接收鼠标输入。

鼠标驱动程序在启动Windows时装入,Windows操作系统通过鼠标驱动程序能检测出鼠标是否存在。

如果鼠标已经存在,则设备驱动程序将注意到Windows的任何鼠标事件。

每当在窗口内有鼠标事件发生时,窗口就接收到一个鼠标事件(以消息的形式发送给应用程序的窗口)。

注意,与键盘消息不同,只要或者在某个窗口中按下鼠标键,那么窗口过程就会收到鼠标消息,即能接收鼠标事件的窗口并不一定要求是活动窗口或者是具有输人焦点的窗口。

vb键盘与鼠标事件过程上机指导

vb键盘与鼠标事件过程上机指导

键盘与鼠标事件过程(上机指导)教学要求:掌握键盘事件KeyPress、KeyDown、KeyUp的基本方法;掌握鼠标事件MouseDown、MouseUp、MouseMove的基本方法;能利用键盘事件、鼠标事件进行程序设计。

知识点:各键盘事件的使用方法;各鼠标事件的使用方法。

内容导航:一、键盘事件(一)KeyPress事件该事件在单击键盘时发生。

它可获得按键的KeyAscii码,并不是单击任意一个键都会发生KeyPress事件,该事件只对会产生ASCII码的键有反应。

在窗体上画一个控件(指上面所讲的可以发生KeyPress事件的控件),双击该控件,进入程序代码窗口后,从“过程”框中选取KeyPress,即可以定义KeyPress事件过程。

一般格式为:Private Sub Command1_KeyPress(KeyAscii As Integer)… …End Sub(二)KeyDown事件和KeyUp事件当用户按下键盘上的任意一个键,便触发该对象的KeyDown事件,释放按键则触发KeyUp 事件。

由于按下键盘的键往往会立即放开,所以这两个事件的使用差别并不大。

KeyDown事件和KeyUp事件的参数有两种形式,其中Index As Integer只用于控件组,而KeyCode As Integer, Shift As Integer用于单个控件。

二、鼠标事件鼠标事件是由用户操作鼠标而引发的事件。

(一)Click事件用户单击鼠标键时发生,格式如下:Private Sub控件名_Click ( [ index As Integer ] )其中Index用于当控件是控件数组时传递的参数。

(二)DbClick事件用户双击鼠标键时发生,格式如下:Private Sub控件名_DbClick ( [ index As Integer ] )(三)MouseDown事件用户按下鼠标上的任一按钮时,就会引发该事件。

键盘和鼠标事件

键盘和鼠标事件

例如:直接按光标键时移动图片的位置,按 下Shift键再按光标键时放缩图片,按 Shift+Ctrl键时复位图片的位置及大小。 将窗体的KeyPreview属性设置为True Image1的Strech属性设置为True.

Private Sub Form_Load() Label1.Caption = "直接按光标键移动图片,按下 Shift键再按光标键放缩图片,按Shift+Ctrl键复 位图片。" End Sub Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If Shift = 3 Then Image1.Move 2000, 1000, 1000, 1000 '复位图 片 End If
KeyPress事件中得到的是按键对应的字符 的ASCII码(KeyAscii) KeyUp,KeyDown事件中得到的是按键对应 的键号(KeyCode),键盘104个键都对应着 唯一的键号。

KeyPress事件 对象的KeyPress事件过程的一般格式为:
Privat Sub Object_KeyPress(KeyAscii As Integer)
Function ShiftStatus(Shift As Integer) As String Select Case Shift Case 0: s = "" Case 1: s = “Shift+" Case 2: s = "Ctrl+" Case 3: s = "Shift+Ctrl+" Case 4: s = "Alt+" Case 5: s = "Shift+Alt+" Case 6: s = "Ctrl+Alt+" Case 7: s = "Shift+Ctrl+Alt+" End Select ShiftStatus = s End Function

鼠标和键盘事件

鼠标和键盘事件

第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、哪个鼠标按键按动 、

键盘与鼠标操作

键盘与鼠标操作

第八章键盘与鼠标操作 (2w)程序在运行过程中,经常需要知道用户对键盘和鼠标的具体操作,例如用户按下键盘上的“A”键时是想输入字符“A”还是输入“a”呢,当用户利用鼠标选中“删除”时是想彻底删除还是想放入回收站呢等等,以便于根据不同的情况,执行不同的具体操作。

为此Visual Basic专门定义了和键盘与鼠标有关的事件和方法。

8-1键盘操作当我们敲击一下键盘上的某个按键时,将会先后触发对应对象的KeyDown、KeyPress、(对于文本框之类的对象还会触发Change)、KeyUp等一系列事件。

根据不同的具体应用,我们可以选择不同的事件进行编程。

需要说明的是,对键盘的某个按键进行操作时,触发的是目前具有输入焦点(Focus)对象的事件。

一般情况下窗体对象不响应这些事件,除非满足下面几个条件:1.目前窗体上没有添加任何对象,则窗体接收键盘事件。

2.目前窗体上有对象,但是它们属于下面两种情况:1)这类对象不具有接收焦点的能力,例如:标签、框架、形状(Shape)、Timer、Image等等2)这类对象本来可以接收焦点(例如:文本框),但目前处于Disabled状态。

3.窗体的KeyPreview属性为True。

所谓KeyPreview的属性为True,就是说无论在窗体内的什么控件内利用键盘输入,都需要事先经过窗体进行检查。

其中,前两种情况下只触发窗体的KeyDown、KeyPress、KeyUp事件,第三种情况下将先后触发窗体的KeyDown、控件的KeyDown、窗体的KeyPress、控件的KeyPress、窗体的KeyUp、控件的KeyUp事件。

8-1-1 KeyPress事件KeyPress事件过程的的形式有两种:Private Sub 对象名_KeyPress(KeyAscii As Integer) '用于非控件数组Private Sub 对象名_KeyPress(Index As Integer, KeyAscii As Integer) '用于控件数组其中:KeyAscii的值在本过程中由系统自动提供,就是用户输入字符的ASCII值。

键盘与鼠标事件ppt课件

键盘与鼠标事件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

计算机基础课程 鼠标与键盘

计算机基础课程 鼠标与键盘

在鼠标消息处理函数内,可用按位逻辑“与”运算检测 特定键的信息,例如,鼠标事件发生时,如果按下了 shift 键,则弹出一个消息框,显示“鼠标事件发生时, shift 键被按下!”,代码如下: if ( nFlags & MK_SHIFT ) //结果若为非零值,则表示 键被按下 Messagesox (”鼠标事件发生时,shift 键被按 下!”);
void CMyWinMouseView::OnLButtonUp(UINT nFlags,CPoint point) { //TODO:Add your message handler code here and/or call default
if(m_MouseDown)
{ CClientDC DC(this); DC.SelectObject(ptr_mypen); DC.SetROP2(R2_XORPEN); DC.MoveTo(m_LineOrg); DC.LineTo(m_LineEnd); m_LineEnd=point; DC.MoveTo(m_LineOrg); DC.LineTo(m_LineEnd); m_MouseDown=0; //鼠标已释放置初值0 }
pDC->SelectObject(ptr_mypen);
pDC->MoveTo(m_LineOrg); pDC->LineTo(m_LineEnd); m_MouseDown=0;
}
方法二 (3)画笔的初始化与销毁分别在视图类构造函数与析 构函数中完成,代码如下: CMyWinMouseView::CMyWinMouseView() { //TODO:add construction code here ptr_mypen=new CPen(0,0,RGB(255,255,255)); //白色线条 } CMyWinMouseView::~CMyWinMouseView() { delete ptr_mypen; //删除画笔 }

第8章键盘与鼠标事件过程

第8章键盘与鼠标事件过程
Private Sub Command1_MouseDown(Button As Integer, _
Shift As Integer, X As Single, Y As Single) Command1.Caption = "按下状态" End Sub
松开鼠标左键时,会发生MouseUp事件,其代码编写如
例8-2 设计一个程序,当鼠标在窗口内移动时,其移动轨迹 也随之出现(如图8-2所示)。双击时,绘制过程完毕。
图8-2 鼠标移动轨迹效果
这个题目可以使用鼠标的MouseMove和DblClick事件实现。 首先,定义并初始化一个整型变量a用来辅助实现要求的功能。 定义代码如下: Dim a As Integer
8.3.1与拖放有关的属性
1. DragMode属性 设置或返回拖动对象(源对象)的模式。取值有两个: 1(vbAutomatic)自动拖动模式。 0(vbManual) 人工(手动)拖动模式。此为默认的模式。
2.DragIcon属性 在拖动一个对象的过程中,并不是对象本身在移动,而是移动 代表对象的图标。也就是说,一旦要拖动一个控件,这个控件 就变成一个图标,等放下后再恢复成原来的控件。默认情况下, 拖动时显示被拖对象的轮廓。通过Draglcon属性可以设置在拖 动时作为被拖动控件的图标。该属性支持的图像文件可以是图 标文件(.ico)或光标文件(.cur)。
第8章 鼠标与键盘事件过程
8.1鼠标事件
1.Click和DblClick事件
用户在单击鼠标左键时会触发Click事件;双击鼠标 左键时会触发DblClick事件。这两个事件过程的语 法格式如下: Private Sub 对象名_Click() [过程体] End Sub Private Sub 对象名_DblClick() [过程体] End Sub

第08讲 JAVA中键盘和鼠标事件

第08讲 JAVA中键盘和鼠标事件


Swing围绕着一个称为JComponent的组件 构建的,而JComponent则由AWT的容器类 扩展而来。
ng.Object | +ponent | +--java.awt.Container | +--javax.swing.JComponent

Swing中的大多数组件都是AWT组件名前面加了一
个"J"。
Swing包:
javax.swing.*;
组件从功能上分可分为:
1) 顶层容器: JFrame,JApplet,JDialog,Jwindow 2) 中间容器: JPanel,JScrollPane,JSplitPane, JToolBar 3) 特殊容器:在GUI上起特殊作用的中间层,如 JInternalFrame,JLayeredPane,JRootPane. 4) 基本控件:实现人际交互的组件,如 Jbutton, JComboBox, JList, JMenu, JSlider, JtextField。
JComponent类的特殊功能又分为:
1) 边框设置:使用setBorder()方法可以设 置组件外围的边框,使用一个EmptyBorder对 象能在组件周围留出空白。 2) 双缓冲区:使用双缓冲技术能改进频繁 变化的组件的显示效果。与AWT组件不同, JComponent组件默认双缓冲区,不必自己重 写代码。如果想关闭双缓冲区,可以在组件上 施加setDoubleBuffered(false)方法。 3) 提示信息:使用setTooltipText()方法, 为组件设置对用户有帮助的提示信息。
2、处理键盘输入的例子。例8.2
演示: MyKeyDemo1.java 可打印字符可使用getKeyChar() 返回; 控制字符使用getKeyCode() 返回;

鼠标与键盘事件

鼠标与键盘事件

七、键盘事件综合示例
检验输入
接上页
Private Sub Text_month_KeyPress(KeyAscii As Integer) If KeyAscii < 48 And KeyAscii <> 8 Or KeyAscii > 57 Then Beep : MsgBox "请输入数字“ KeyAscii = 0 End If End Sub Private Sub Text_passwd_KeyPress(KeyAscii As Integer) If KeyAscii < 48 And KeyAscii <> 8 Or KeyAscii > 57 Then Beep : MsgBox "请输入数字“ : KeyAscii = 0 End If End Sub Private Sub Text_year_KeyPress(KeyAscii As Integer) If KeyAscii < 48 And KeyAscii <> 8 Or KeyAscii > 57 Then Beep : MsgBox "请输入数字“ : KeyAscii = 0 End If ‘8代表退格符 End Sub Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then MsgBox “按下了回车符" If (Shift And 2) > 1 Then MsgBox “你按下了ctrl键" End Sub
五、keypress事件说明: keypress事件说明: 事件说明
Keypress事件:用于截获在文本框/ 组合框中输入的按键; Sub 控件名_keypress ([index as integer,] keyascii as integer ) 参数:([index as integer ,] keyascii as integer) a. index: 当控件是控件数组中的一个元素时,index代表在数组 是索引值,即下标 b. keyascii: 返回标准的ascii键码 可以用chr(keyascii) 将ascii 转化为相应的字符;或用 =asc(char) 将字符转为ascii码。(用于判定输入是否为某字符) 注意:keypress 事件不是指出所按字符在键盘上的物理位置,而 是传送一个字 符,故它可以判别大小写。 相反,keyup/ keydown能识别的是所按字符在键盘上的物理位置, 则大小写字符的keycode码是一样的。 (若要在keyup/ keydown 中判别字符的大小写,需判定是否为 shift +该键)

第八章键盘与鼠标事件过程

第八章键盘与鼠标事件过程

第九章:键盘与鼠标事件过程相关知识:文本字符的ascii码为了在计算机内部区分每个字符,系统为每个字符规定了一个与之唯一对应的数值编码,即ascii码。

(就好像为了区分每个人,都规定一个身份证号码一样)。

下面是常用的一些字符ascii码:"0"——48 "1"——49 ...... (注意这里"0","1"是字符,不是数值)"A"——65 "B"——66 ......"a"——97 "b"——98 ...... (即小写字母的ascii码比对应大写字母的ascii码多32)特殊的:回车键为13,退格键为8 。

chr(Ascii码)-->返回该Ascii码对应的字符.如chr(65)-->"A"Asc("字符")-->返回该字符的Ascii码.如Asc("A")-->65一、针对键盘的事件,主要是以下三种:KeyDown 、KeyUp 事件:按键的按下/ 放开事件。

KeyPress 事件:按键事件。

用户按下任一键则引发KeyDown 事件,松开则引发KeyUp 事件。

用户按下并释放按键,便引发KeyPress 事件。

1)KeyPress事件例1:编写表单的keypress事件代码,要求输出各个按钮的ascii 码。

运行时,试着依次按a,b,A,B,0,1回车,退格键。

代码如下:Private Sub Form_KeyPress(KeyAscii As Integer) Print KeyAsciiEnd Sub说明:当按下键盘上的键时,keyAscii会自动保存按下的那个键的ascii码值。

例2:编写文本框的keypress事件代码,要求文本框只接受数字字符或退格键。

第8章 键盘、鼠标事件和图形

第8章  键盘、鼠标事件和图形

8.3.2 OLE拖放操作
• OLE拖放是Visual Basic 应用程序中添加的最强大、 最有用的功能之一,利用它可以在控件和控件之 间、在控件和其它 Windows 应用程序之间拖动文 本和图形。Visual Basic中的大部分控件都支持 OLE拖放,但默认状态下控件的OLEDropMode属 性被设置为0,也就是不允许拖放。如果要使用 OLE拖放功能,必须先把OLEDropMode属性设置 为1,这样控件才成为接受文件拖放的一个OLE容 器。OLEDragMode属性决定了控件是自动还是需 要手工实现“拖”操作。为了方便操作可以将其 设置为1,让其自动实现“拖”操作。(具体内容 请参照本书)
重要例题
• • • • • • • • 例8-13:Drawing Rectangle 例8-14:Drawing Circle 例8-15:Drawing oval 例8-16:Drawing Arc or Fan 例8-17:Picture 例8-18:Drawing method 例8-19:KeyDown and KeyUp 例8-20:Different Shape Style
8.4.10 重绘图形和画笔模式
• (具体内容请参照本书)
重要例题
• • • • • • • • • • 例8-1,8-2:KeyPress 例8-3,8-4:KeyDown 例8-5:MouseDown 例8-6:MouseUp 例8-7:MouseMove 例8-8:Mouse DragDrop 例8-9:Mouse OLEDragDrop 例8-10:Drawing Control 例8-11:Drawing Pixel 例8-12:Drawing Line
8.3.1 拖放操作实例——垃圾桶的实现

第8章 鼠标、键盘和界面设计

第8章 鼠标、键盘和界面设计

VB程序设计教程
18
属 性 区 编 辑 区 显 示 区
VB程序设计教程
19
8.4.2 创建菜单
• 属性区
• 标题(caption)
– 显示在菜单上的字符。 – 在字母前加一个&符号构成热键。运行时按下alt+字母, 打开菜单项 – 如果设计的下拉菜单要分组,则在标题文本框中输入 一个连字符(-)
• 名称(Name)
– 菜单项的名称,不会显示出来,在程序中标识该菜单 项。 – 分隔符也要有对应的名称。 VB程序设计教程
20
• 快捷键(ShortCut)下拉式列表
– 设置菜单项的快捷键,直接执行菜单项的操作
• 复选(check)
– 允许在菜单项的左边设置复选标记。
• 有效(enabled) – 选中时,菜单项高亮度显示; – 未选中,菜单项变成灰色,不能被用户选择。 • 可见(Visible) – 设置是否将菜单项(命令)显示在菜单上 – 选中时,显示; – 不选中,不显示,用来设置弹出式菜单
Y
VB程序设计教程
本章目录
6
• 例2:在窗体上按下鼠标左键,同时按下 ctrl键,在当前位置画一个半径为200的圆 • 分别在窗体的鼠标按下事件和鼠标移动事 件中编写,看看效果 • 代码:
– If button=1 and shift=2 then
• Circle(x, y), 200
– End if
• Keyascii=0 „汉字机内码小于0
– End if
VB程序设计教程
13
3.KeyDown事件和KeyUp事件
• sub Form_keydown(keycode as integer, shift as integer)

键盘和鼠标事件

键盘和鼠标事件
}
10.2.3 MouseMove事件 当用户在移动鼠标指针到控件上时触发
MouseMove事件,与该事件相关的事件还有 MouesEnter和MouseLeave事件分别在鼠标指针进 入控件和离开控件时发生。
【例10-4】设计一个程序。要求将鼠标指针指向 和离开按钮Button1时,按钮上显示的图片不同。 当鼠标在窗体上移动时,标签中实时显示当前指 针的坐标值(X,Y)。
MouseEnter:当鼠标指针进入控件时触发的事件。 MouseMove:当鼠标指针在控件上移动时触发的事件。 MouseHover/MouseDown/MouseWheel: MouseHover事件当鼠标指针悬停在控件上时被触发; MouseDown事件在用户按下鼠标键时被触发; MouseWheel事件在拨动鼠标滚轮并且控件有焦点时被 触发。 MouseUp:当用户在控件上按下的鼠标键释放时触发。 MouseLeave:当鼠标指针离开控件时触发。
2. KeyDown和KeyUp事件应用实例
【例10-2】设计一个数字文本加密程序。当用户 在文本框中输入一个字母字符时,程序自动将 其按一定的规律(算法)转换成其他字符并显 示到文本框中,在标签控件中显示原始字符。 按〈BackSpace〉键可删除光标前一个字符,标 签中的内容随之变化。按〈Enter〉键时显示信 息框,单击【确定】按钮结束程序运行。若用 户按下〈Ctrl〉+〈Shift〉+〈End〉组合键, 则直接结束程序运行。
确认退出", MessageBoxButtons.OKCancel, rmation) == DialogResult.OK) this.Close();
} }
10.2 鼠标事件
10.2.1 鼠标事件发生的顺序 当用户操作鼠标时,将触发一些鼠标事件。这些事件 的发生顺序如下:

第8章 键盘与鼠标事件过程

第8章 键盘与鼠标事件过程

南京大学出版社 25
属 性
MousePointer属性的默认设置为0-Default, 鼠标形状为标准的Windows箭头指针。 当控件设置了MousePointer属性后,鼠标 经过该控件时,指针就会显现。举个例子,如 果我们在窗体上放置一个文本框控件,将文本 框的MousePointer属性设置为13-Arrow and Hourglass,F5运行后,就会发现当鼠标移到文 本框的区域内就变成了箭头和沙漏的形状,移 出文本框,又恢复成了默认的箭头形状。 还有一点需要说明的是,当MousePointer 属性设置为99-Custom时,可以允许改变 MouseIcon的值。
8.2 鼠 标 事 件
2014-4-10
南京大学出版社 14
鼠标事件的四个参数:
8.2 鼠 标 事 件
2014-4-10
参数 Button Shift x,y
描述 Integer类型参数,其最低三位值表明三个 鼠标按钮的状态 Integer类型参数,其最低三位值表明按下 鼠标按钮时SHIFT、CTRL和ALT键的状态 表明鼠标的坐标位置
事 件
2014-4-10
南京大学出版社 5
例8.1:利用KeyPress事件来转换字母的大小写
实现步骤: (1)新建一个标准EXE工程。 (2)在窗体上放置一个文本框控件text1 (3)代码编辑器下输入代码: Private Sub Text1_KeyPress(KeyAscii As Integer) KeyAscii = Asc(LCase(Chr(KeyAscii))) End Sub KeyAscii参数返回KeyPress事件所接收的ASCII 码值,先用Chr()函数将ASCII码值转换成字符,然 后再用Lcase函数将字符转化为大写形式,最后用 Asc()函数将结果重新转换成字符。

键盘鼠标事件

键盘鼠标事件
Private Sub Text1_KeyDown(KeyCode As _Integer, Shift As Integer) Private Sub Text1_KeyDown(KeyCode As _Integer, Shift As Integer) If KeyCode = vbKeyA Then If KeyCode = vbKey1 And shift=1 Then MsgBox "You pressed the A key.“ MsgBox "You pressed the ! key.“ End if End if End Sub End Sub
privatesubformkeydownkeycodeintegershiftintegerprintchrkeycodeendsubprivatesubformkeypresskeyasciiintegerprintchrkeyasciiendsub在一般情况下即不按住shift键和也未锁定锁定大写键时运行程序如果按a键则程序输出大多数控件能够识别鼠标的mousemovemousedow和mouseup事件通过响应这些鼠标事件能在应用程序对鼠标位置及状态的变化作出响应操作
End Sub
编写如下两个事件过程: 编写如下两个事件过程: Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Print Chr(KeyCode) End Sub Private Sub Form_KeyPress(KeyAscii As Integer) Print Chr(KeyAscii) End Sub 在一般情况下(即不按住 键和也未锁定锁定大写键时), 在一般情况下(即不按住Shift键和也未锁定锁定大写键时), 键和也未锁定锁定大写键时 运行程序,如果按“ 键 则程序输出( 运行程序,如果按“A”键,则程序输出( )
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.Picture 属性:该属性用于向图片框和图像框 中加载图像。
既可以在设计时通过属性窗口设置; 也可以在程序运行时调用 LoadPicture 函数进行设置。
4.LoadPicture 属性 :功能是在程序运行时将图 形载入到图片框或图像框控件中。其语法为:
<对象名>.Picture = LoadPicture([PicturePath]) PicturePath 代表被载入图形文件的路径及文件名, 可用App.Path代表当前路径;若省略PicturePath,则 清除图片框或图像框中的图像。 。
20122012-3-16
目录
13
Visual Basic程序设计教程 Basic程序设计教程
6.1.1 KeyPress事件
用户按下与ASCII字符对应的键时,将触 发KeyPress事件。 KeyPress事件能够识别数字、字母和符 号等所有可见字符,以及Enter、 Backspace、Tab和Esc这4个控制键,但 是KeyPress事件不能识别其他控制键、 编辑键、定位键和F1~F12功能键。
20122012-3-16
目录
22
Visual Basic程序设计教程 Basic程序设计教程
6.1.2 KeyDown事件和KeyUp事件
参数说明: ①Keycode参数值是用户所操作的按键的 扫描代码,它向事件过程传递物理键代码, 与ASCII码不同,没有大小写的区别,字 母键的键代码与该字母大写字符的ASCII 值相同,对于“A”和“a”,它们的 Keycode值相同,都是数值65。
20122012-3-16
目录 23
Visual Basic程序设计教程 Basic程序设计教程
6.1.2 KeyDown事件和KeyUp事件
参数说明: ②Shift参数表示在该事件触发时响应 SHIFT、CTRL和ALT键的状态,它是一 个整数,取值为0~7。参数Shift值与组合 键之间的对应关系如表6-2所示。
20122012-3-16
目录 21
Visual Basic程序设计教程 Basic程序设计教程
6.1.2 KeyDown事件和KeyUp事件
KeyUp和KeyDown事件过程语法格式如下: Sub 对象名_KeyDown(KeyCode As Integer, Shift As Integer) Sub 对象名_KeyUp(KeyCode As Integer, Shift As Integer)
Private Sub Text1_KeyPress (KeyAscii As Integer) KeyAscii = Asc(Lcase(Chr(KeyAscii))) End Sub
17
20122012-3-16
目录
Visual Basic程序设计教程 Basic程序设计教程
例6-1(界面)
【例6-1】建立一个窗体和一个文本框, 通过编程实现在文本框中限பைடு நூலகம்只能输入数 字字符(ASCII码为48-57),不允许输入其 他字符。程序运行界面如图6-1所示。
程序代码如下:
Private Sub Text1_KeyPress (KeyAscii As Integer) Select Case KeyAscii Case 48 to 57 Case Else KeyAscii=0 ’ keyascii=0就是什么都不输入 End Select End Sub
第八讲 键盘和鼠标事件
20122012-3-16
Visual Basic程序设计教程
1
Visual Basic程序设计教程 Basic程序设计教程
5.5 图片框和图像框
图片框(PictureBox)和图像框(Image)是 VB 6.0 中用来放置图形信息的两种基本控件, 可以显示 .bmp、.ico、.wmf、.jpg、.gif 等类型 的文件。其中图片框既可以显示图形,也可以 作为其他控件的容器,还可以绘图方法输出或 显示Print方法输出的文本。 本节包括以下内容:
(1)图片框是“容器”控件,可以包含其他控件,而图像 框却不能。 (2)图片框可以通过 Print 方法输出文本,图像框无此功能。 (3)图像框比图片框占用内存少,并且显示速度快。
5
20122012-3-16
目录
Visual Basic程序设计教程 Basic程序设计教程
5.5.2图像框应用实例
【例5-8】在窗体中添加四个图像框、三个命 】 令按钮和一个时钟,在当前文件夹下有三幅图 片t1. wmf、t2.wmf、t3.wmf。要求程序运行后, 自动将三幅图片分别装入其中的三个图像框中, 如果点击“移动”按钮,每间隔1秒钟,图片 自动向右依次移动;如果点击“停止”按钮, 图片不再移动。程序运行界面如图5-8 (a)~58(d)所示。
20122012-3-16
目录 12
Visual Basic程序设计教程 Basic程序设计教程
6.1 键盘事件
程序运行时,用户进行键盘操作,就会产 生键盘事件,由当前获得焦点的对象,来 响应键盘事件。 本节包括以下内容:
6.1.1 KeyPress事件 6.1.2 KeyDown事件和KeyUp事件
20122012-3-16
目录 20
Visual Basic程序设计教程 Basic程序设计教程
6.1.2 KeyDown事件和KeyUp事件
当焦点置于某对象上,如果用户按下键盘 中的任意一个键时,便会触发相应对象的 KeyDown事件,释放按键时便会触发 KeyUp事件。 与KeyPress事件不同,KeyDown和KeyUp 事件返回的是被按下或释放的键盘扫描码 和组合键的状态,并能够检测功能键、编 辑键和定位键。
20122012-3-16
目录
24
Visual Basic程序设计教程 Basic程序设计教程 表6-2 参数Shift值与组合键对照表 二进制值 000 001 010 011 100 101 110 111 十进制值 0 1 2 3 4 5 6 7 VbShiftMask VbCtrlMask vbShiftMask+ vbCtrlMask VbAltMask VbShiftMask+ vbAltMask VbCtrlMask+ vbAltMask vbShiftMask+ vbCtrlMask+ vbAltMask 符号常数 描述 未按下任何键 SHIFT键被按下 CTRL键被按下 同 时 按 下 SHIFT 和 CTRL键 ALT 键被按下 同时按下SHIFT和ALT 键 同时按下CTRL和ALT 键 同时按下SHIFT、 CTRL和ALT键
20122012-3-16
目录
18
Visual Basic程序设计教程 Basic程序设计教程
例6-1(属性设置)
程序所需各控件的属性如表6-1所示
控件名(Name) Text1 Text ""
20122012-3-16
目录
19
Visual Basic程序设计教程 Basic程序设计教程
例6-1(语句)
20122012-3-16
目录
11
Visual Basic程序设计教程 Basic程序设计教程
第6章 键盘和鼠标事件
键盘事件和鼠标事件是Windows编程中最 重要的两种外部事件。 本章将系统地讲解VB中键盘事件和鼠标事 件的使用方法以及鼠标拖放功能的实现。
6.1 键盘事件 6.2 鼠标事件 6.3 鼠标的拖放操作
20122012-3-16
目录 4
Visual Basic程序设计教程 Basic程序设计教程
5.5.1图片框和图像框的属性、事 件和方法
5.常用事件及方法
图片框和图像框可以触发Click和DblClick等事件。 图片框可以使用Cls和Print方法。 图片框与图像框都可以用来显示图像,但它们之间 还是有区别的,主要表现为:
20122012-3-16
目录
15
Visual Basic程序设计教程 Basic程序设计教程
20122012-3-16
目录
16
Visual Basic程序设计教程 Basic程序设计教程
6.1.1 KeyPress事件
例如,建立一个窗体,包含一个文本框, 要将文本框中所有字符都强制转换为小写 字符,代码如下:
20122012-3-16
目录
10
Visual Basic程序设计教程 Basic程序设计教程
例5-8(语句-3)
Private Sub Command2_Click() Timer1.Enabled = False End Sub Private Sub Command3_Click() End End Sub
20122012-3-16
目录 14
Visual Basic程序设计教程 Basic程序设计教程
6.1.1 KeyPress事件
KeyPress 事件过程的语法格式如下: Sub 对象名_KeyPress(KeyAscii As Integer) 参数说明: KeyAscii参数返回对应ASCII字符代码的整型数 值。例如,按下“a”,KeyAscii参数值为97; 按下“A”,KeyAscii参数值为65。 常用字符 A S C I I
20122012-3-16
Stretch True True True
Visible
Enabled
False 移动 停止 结束 1000 False
目录 8
Visual Basic程序设计教程 Basic程序设计教程
例5-8(语句-1)
程序代码如下:
Option Explicit Private Sub Form_Load() Image1.Picture = LoadPicture(App.Path + "\t1. wmf ") Image2.Picture = LoadPicture(App.Path + "\t2.wmf") Image3.Picture = LoadPicture(App.Path + "\t3.wmf") End Sub Private Sub Command1_Click() Timer1.Enabled = True End Sub
相关文档
最新文档