鼠标,键盘对应KEY值
VB鼠标事件与键盘事件

VB鼠标事件与键盘事件SuB Form—MouseMove(Buttoil As Integer,Shift As Integer,x As Single,Y As Single)这3个鼠标事件过程具有相同的参数,它们把鼠标的信息传给过程。
(1)Button:被按下的鼠标按钮,可以取以下3个值。
(2)Shift:表示Shift、ctrl和Alt的状态。
如表6.7所示。
(3)x,Y:这两个值对应于当前鼠标的位置,采用ScaleMode属性指定的位置。
说明:(1)有些鼠标只有2个按键,或者虽有3个按键,但w:indows鼠标驱动程序不能识别中间按键。
在这种情况下,表6.6中的后4个参数值不能使用。
(2)对于单按鼠标器,它的按键定义为左按键。
如果鼠标带两个按键,并使用windows 的控制面板交换了鼠标器的左、右键,那么,当按右按键时,VB认为是按了左按键。
例如,如果按住Ctrl键,然后在坐标为(2000,3000)的点上按下鼠标器右键,则立即调用Forul—MouseDown过程,释放鼠标右键时,调用Form—MouseUp过程。
此时。
Button、Shift、x、Y这4个参数的值分别为2、2、2000和3000.(3)Shift是转换键,它指的是3个转换状态,包括Shift、ctrl和Alt。
这3个键分别以二进制方式表示,每个键用三位,即:Shift键为001,Ctrl键为010,Alt键为100。
当按下Shift键时,Shift参数的值为00l(十进制数1),当按下ctrl键时,Shift参数的值为010(十进制数2),而按下Alt键时,Shift参数的值为100(十进制数4)。
如果同时按下2个或3个转换键,则Shift参数的值即为上述两者或三者之和。
因此,Shift参数共可取8种值。
Private Sub Form_Load()KeyPreview=TrueEnd SubKeyPreview属性返回或设置一个值,以决定是否在控件的键盘事件之前激活窗体的键盘事件。
键盘和鼠标事件

例如:直接按光标键时移动图片的位置,按 下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
VB 中所有键盘上的键值代码

vbKeyF5 116 F5 键
vbKeyF6 117 F6 键
vbKeyF7 118 F7 键
vbKeyF8 119 F8 键
vbKeyF9 120 F9 键
vbKeyF111 键
vbKeyF12 123 F12 键
vbKeyInser 45 INS 键
vbKeyDelete 46 DEL 键
vbKeyHelp 47 HELP 键
vbKeyNumlock 144 NUM LOCK 键
================================
A 键到 Z 键与其 ASCII 码的相应值'A' 到 'Z' 是一致的
vbKeyReturn 13 ENTER 键
vbKeyShift 16 SHIFT 键
vbKeyControl 17 CTRL 键
vbKeyMenu 18 菜单键
vbKeyPause 19 PAUSE 键
vbKeyCapital 20 CAPS LOCK 键
vbKeyEscape 27 ESC 键
vbKeyDecimal 110 小数点 (.) 键
vbKeyDivide 111 除号 (/) 键
==================================================
功能键
常数 值 描述
vbKeyF1 112 F1 键
vbKeyF2 113 F2 键
vbKeyF3 114 F3 键
vbKey1 49 1 键
vbKey2 50 2 键
vbKey3 51 3 键
键盘与鼠标操作

第八章键盘与鼠标操作 (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值。
鼠标键盘虚拟键值表

#define VK_RBU TTON0x02 鼠标右键#define VK_CAN CEL 0x03 Contro l-Break处理#define VK_MBU TTON 0x04 /* NOT contig uouswith L & RBUTTO N */ 鼠标中间键#define VK_BAC K 0x08 Backsp ace键#define VK_TAB0x09 Tab键#define VK_CLE AR 0x0C Clear键#define VK_RET URN 0x0D Enter键#define VK_SHI FT 0x10 Shift键#define VK_CON TROL0x11 Ctrl键#define VK_MEN U 0x12 Alt键#define VK_PAU SE 0x13#define VK_CAP ITAL0x14 Caps lock键#define VK_KAN A0x15#define VK_HAN GEUL 0x15 /* old name - should be here for compat ibili ty */#define VK_HAN GUL 0x15#define VK_JUN JA0x17#define VK_FIN AL 0x18#define VK_HAN JA0x19#define VK_KAN JI 0x19#define VK_ESC APE 0x1B Escape键#define VK_CON VERT0x1C#define VK_NON CONVE RT 0x1D#define VK_ACC EPT 0x1E#define VK_MOD ECHAN GE 0x1F#define VK_SPA CE 0x20 空格键#define VK_PRI OR 0x21 Page up键#define VK_NEX T 0x22 Page down键#define VK_END0x23 End键#define VK_HOM E 0x24 Home键#define VK_LEF T 0x25 左箭头键#define VK_UP0x26 上箭头键#define VK_RIG HT 0x27 右箭头键#define VK_DOW N 0x28 下箭头键#define VK_SEL ECT 0x29 Select键#define VK_PRI NT 0x2A#define VK_SNA PSHOT 0x2C Printscreen键#define VK_INS ERT 0x2D Insert键#define VK_DEL ETE 0x2E Delete键#define VK_HEL P 0x2F Help键/* VK_0 thru VK_9 are the same as ASCII'0' thru '9' (0x30 - 0x39) */ /* VK_A thru VK_Z are the same as ASCII'A' thru 'Z' (0x41 - 0x5A) */#define VK_LWI N 0x5B#define VK_RWI N 0x5C#define VK_APP S 0x5D#define VK_NUM PAD00x60 数字小键盘上的0#define VK_NUM PAD10x61#define VK_NUM PAD20x62#define VK_NUM PAD30x63#define VK_NUM PAD40x64#define VK_NUM PAD50x65#define VK_NUM PAD60x66#define VK_NUM PAD70x67#define VK_NUM PAD80x68#define VK_NUM PAD90x69#define VK_MUL TIPLY0x6A数字小键盘上的*#define VK_ADD0x6B 数字小键盘上的+#define VK_SEP ARATO R 0x6C 分隔符键#define VK_SUB TRACT0x6D 数字小键盘上的-#define VK_DEC IMAL0x6E 数字小键盘上的.#define VK_DIV IDE 0x6F 数字小键盘上的/#define VK_F10x70#define VK_F20x71#define VK_F30x72#define VK_F40x73#define VK_F50x74#define VK_F60x75#define VK_F70x76#define VK_F80x77#define VK_F90x78#define VK_F100x79#define VK_F110x7A#define VK_F120x7B#define VK_F130x7C#define VK_F140x7D#define VK_F150x7E#define VK_F160x7F#define VK_F170x80#define VK_F180x81#define VK_F190x82#define VK_F200x83#define VK_F210x84#define VK_F220x85#define VK_F230x86#define VK_F240x87#define VK_0 ... VK_9 0x30 - 0x39 0-9键#define VK_A ... VK_Z 0x41 - 0x5A A-Z键#define VK_NUM LOCK0x90#define VK_SCR OLL 0x91 Scroll Lock/** VK_L* & VK_R* - left and rightAlt, Ctrl and Shiftvirtua l keys.* Used only as parame tersto GetAsy ncKey State() and GetKey State().* No otherAPI or messag e will distin guish left and rightkeys in this way.*/#define VK_LSH IFT 0xA0#define VK_RSH IFT 0xA1#define VK_LCO NTROL0xA2#define VK_RCO NTROL0xA3#define VK_LME NU 0xA4 左Alt键#define VK_RME NU 0xA5 右Alt键#if(WINVER >= 0x0400)#define VK_PRO CESSK EY0xE5#endif/* WINVER >= 0x0400 */#define VK_ATT N 0xF6#define VK_CRS EL 0xF7#define VK_EXS EL 0xF8#define VK_ERE OF 0xF9#define VK_PLA Y0xFA#define VK_ZOO M 0xFB#define VK_NON AME 0xFC#define VK_PA10xFD#define VK_OEM_CLEA R 0xFEVK_OEM_1 BA Used for miscel laneo us charac ters; it can vary by keyboa rd.Window s 2000/XP: For the US standa rd keyboa rd, the ';:' keyVK_OEM_PLUS BB Window s 2000/XP: For any countr y/region, the '=+' keyVK_OEM_COMM A BC Window s 2000/XP: For any countr y/region, the ',<' keyVK_OEM_MINU S BD Window s 2000/XP: For any countr y/region, the '-_' keyVK_OEM_PERI OD BE Window s 2000/XP: For any countr y/region, the '>.' keyVK_OEM_2 BF Used for miscel laneo us charac ters; it can vary by keyboa rd. Window s 2000/XP: For the US standa rd keyboa rd, the '/?' keyVK_OEM_3 C0 Used for miscel laneo us charac ters; it can vary by keyboa rd. Window s 2000/XP: For the US standa rd keyboa rd, the '`~' key- C1-D7 Reserv ed- D8-DA Unassi gnedVK_OEM_4 DB Used for miscel laneo us charac ters; it can vary by keyboa rd. Window s 2000/XP: For the US standa rd keyboa rd, the '[{' keyVK_OEM_5 DC Used for miscel laneo us charac ters; it can vary by keyboa rd. Window s 2000/XP: For the US standa rd keyboa rd, the '\|' keyVK_OEM_6 DD Used for miscel laneo us charac ters; it can vary by keyboa rd. Window s 2000/XP: For the US standa rd keyboa rd, the ']}' keyVK_OEM_7 DE Used for miscel laneo us charac ters; it can vary by keyboa rd. Window s 2000/XP: For the US standa rd keyboa rd, the '' "' key。
ASCII码表和键盘键码表(完整珍藏版)

表一: ASCII码表 (完整版 )ASCII 值字符ASCII 值字符ASCII 值字符ASCII 值字符0NUT32(space)64@96、1SOH33!65A97a 2STX34”66B98b 3ETX35#67C99c 4EOT36$68D100d 5ENQ37%69E101e 6ACK38&70F102f7BEL39,71G103g 8BS40(72H104h 9HT41)73I105i 10LF42*74J106j11VT43+75K107k 12FF44,76L108l 13CR45-77M109m 14SO46.78N110n 15SI47/79O111o 16DLE48080P112p 17DCI49181Q113q 18DC250282R114r 19DC351383X115s 20DC452484T116t 21NAK53585U117u 22SYN54686V118v 23TB55787W119w 24CAN56888X120x 25EM57989Y121y 26SUB58:90Z122z 27ESC59;91[123{ 28FS60<92/124| 29GS61=93]125} 30RS62>94^126~ 31US63?95—127DEL注:特殊控制字符所代表含义NUL 空VT垂直制表SYN空转同步HT横向列表SOH 标题开始FF 走纸控制ETB信息组传送结束LF换行STX 正文开始CR 回车CAN 作废GS组分隔符ETX正文结束SO 移位输出EM纸尽NAK否定EOY传输结束SI移位输入SUB换置US单元分隔符ENQ询问字符DLE空格ESC换码DEL删除ACK承认BS 退一格FS文字分隔符RS记录分隔符DC1 设备控制 1DC2 设备控制 2DC3 设备控制 3DC4 设备控制 4BEL 报警表二: 104键盘码表 (完整版 )控制键常数值健描述常数值健描述vbKeyLButton1鼠标左键vbKeyPageDown34PageDown键vbKeyRButton2鼠标右键vbKeyEnd35End键vbKeyCancel3Cancel键vbKeyHome36Home键vbKeyMButton4鼠标中键vbKeyLeft37左方向键vbKeyBack8Backspace健vbKeyUp38上方向键vbKeyTab9Tab键vbKeyRight39右方向键vbKeyClear12Clear键vbKeyDown40下方向键vbKeyReturn13Enter键vbKeySelect41Select键vbKeyShift16Shift键vbKeyPrint42Print Screen键vbKeyControl17Ctrl键vbKeyExecute43Execute键vbKeyMenu18菜单键vbKeySnapshot44Snap Shot键vbKeyPause19Pause键vbKeyInser45Ins键vbKeyCapital20Caps Lock键vbKeyDelete46Del键vbKeyEscape27Esc键vbKeyHelp47Help键vbKeySpace32Spacebar键vbKeyNumlock144Num Lock键vbKeyPageUp33Page Up字母按健字母区数字键常数 (vbKeyA ~ vbKeyZ)<==> 键码 (65 ~ 90)<==> 字母 (A ~ Z) 健可对照 ASCII表常数 (vbKey0 ~ vbKey9 )<==> 键码 (48 ~ 57)<==> 数字 (0 ~ 9)健可对照 ASCII表数字小键盘区按键 F 功能健常数值健描述常数值健描述vbKeyNumpad096Num 0键vbKeyF1112F1键vbKeyNumpad197Num 1键vbKeyF2113F2键vbKeyNumpad298Num 2键vbKeyF3114F3键vbKeyNumpad399Num 3键vbKeyF4115F4键vbKeyNumpad4100Num 4键vbKeyF5116F5键vbKeyNumpad5101Num 5键vbKeyF6117F6键vbKeyNumpad6102Num 6键vbKeyF7118F7键vbKeyNumpad7103Num 7键vbKeyF8119F8键vbKeyNumpad8104Num 8键vbKeyF9120F9键vbKeyNumpad9105Num 9键vbKeyF10121F10 键vbKeyMultiply106(*)键vbKeyF11122F11 键vbKeyAdd107(+)键vbKeyF12123F12 键vbKeySeparator108Enter健vbKeyF13124F13 键vbKeySubtract109(-)键vbKeyF14125F14 键vbKeyDecimal110(.)键vbKeyF15126F15键vbKeyDivide111(/)键vbKeyF16127F16键庄子云:“人生天地之间,若白驹过隙,忽然而已。
常用ASCII码/KeyCode/vbkey值列表

vbKeyO 79 O 键
vbKeyP 80 P 键
vbKeyQ 81 Q 键
vbKeyR 82 R 键
vbKeyS 83 S 键
vbKeyT 84 T 键
vbKeyU 85 U 键
vbKeyV 86 V 键
vbKeyW 87 W 键
VB KeyCode 常数表
常数
值 描述
vbKeyLButton 0x1 鼠标左键
vbKeyRButton 0x2 鼠标右键
vbKeyCancel 0x3 CANCEL 键
vbKeyMButton 0x4 鼠标中键
vbKeyBack 0x8 BACKSPACE 键
vbKeyTab 0x9 TAB 键
vbKeyEscape 0x1B ESC 键
vbKeySpace 0x20 SPACEBAR 键
vbKeyPageUp 0x21 PAGE UP 键
vbKeyEnd 0x23 END 键
vbKeyHome 0x24 HOME 键
vbKeyLeft 0x25 LEFT ARROW 键
ASCII码对照表
ASCII, American Standard Code for Information Interchange 念起來像是 "阿斯key",定義從 0 到 127 的一百二十八個數字所代表的英文字母或數字或符號,所有使用 ASCII 的電腦之間可以互相讀取同一份文件而不會有不一樣的結果與意義。由於只使用 7 個位元 (bit) 就可以表示從 0 到 127 的數字,大部分的電腦都使用 8 個位元來存取字元集 (character set),所以從 128 到 255 之間的數字可以用來代表另一組一百二十八個符號,稱為 extended ASCII。
VB教程(第2版) 第9章 鼠标、键盘和OLE

9.1.1 鼠标事件
当在图片框中移动鼠标时,不断地画线和画方块,实现连续画线和方块。 Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) '在图片框中移动鼠标 If Button = 1 And C2 = 1 Then Select Case C1 Case 1 Picture1.Line -(X, Y) Case 2 Picture1.Line (X1, Y1)-(X, Y), , BF End Select End If End Sub
9.1.1 鼠标事件
说明: (1)Button表示是哪个鼠标键被按下或释放。用0、1、2三个位表示鼠标 的左、右、中键,每位用0、1表示被按下或释放,三个位的二进制转换成十进 制就是Button的值,如图9.1所示,表9.1列出了按钮与常数值的对应关系。
十进制 0 1 2 3 4 5 6 7
二进制 000 001 010 011 100 101 110 111
图9.4 查看键代码
9.2 键盘事件
2. KeyPress事件 KeyPress事件是当键盘有键按下时触发的。KeyPress事件检测的键有Enter、 Tab、BackSpace以及键盘上的字母、数字和标点符号键,对于其他功能键、编 辑键和定位键,则不作响应。 语法: Private Sub 对象_KeyPress(KeyAscii As Integer) 说明: • 对象:是接受键盘事件的对象,由具有焦点的对象接收。 • KeyAscii:是按键对应的ASCⅡ码值。将keyAscii改为0时可取消本次击键, 这样对象便接收不到按键的字符。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
值描述
0x1 鼠标左键
0x2 鼠标右键
0x3 CANCEL 键
0x4 鼠标中键
0x8 BACKSPACE 键
0x9 TAB 键
0xC CLEAR 键
0xD ENTER 键
0x10 SHIFT 键
0x11 CTRL 键
0x12 MENU 键
0x13 PAUSE 键
0x14 CAPS LOCK 键
0x1B ESC 键
0x20 SPACEBAR 键
0x21 PAGE UP 键
0x22 PAGE DOWN 键
0x23 END 键
0x24 HOME 键
0x25 LEFT ARROW 键
0x26 UP ARROW 键
0x27 RIGHT ARROW 键
0x28 DOWN ARROW 键
0x29 SELECT 键
0x2A PRINT SCREEN 键
0x2B EXECUTE 键
0x2C SNAPSHOT 键
0x2D INSERT 键
0x2E DELETE 键
0x2F HELP 键
0x90 NUM LOCK 键
A 至 Z 键与 A – Z 字母的 ASCII 码相同:
值描述
65 A 键
66 B 键
67 C 键
68 D 键
69 E 键
70 F 键
71 G 键
72 H 键
73 I 键
74 J 键
75 K 键
76 L 键
77 M 键
78 N 键
79 O 键
80 P 键
81 Q 键
82 R 键
83 S 键
84 T 键
85 U 键
86 V 键
87 W 键
88 X 键
89 Y 键
90 Z 键
0 至 9 键与数字 0 – 9 的 ASCII 码相同:
值描述
48 0 键
49 1 键
50 2 键
51 3 键
52 4 键
53 5 键
54 6 键
55 7 键
56 8 键
57 9 键
下列常数代表数字键盘上的键:
值描述
0x60 0 键
0x61 1 键
0x62 2 键
0x63 3 键
0x64 4 键
0x65 5 键
0x66 6 键
0x67 7 键
0x68 8 键
0x69 9 键
0x6A MULTIPLICATION SIGN (*) 键
0x6B PLUS SIGN (+) 键
0x6C ENTER 键
0x6D MINUS SIGN (–) 键
0x6E DECIMAL POINT (.) 键 0x6F DIVISION SIGN (/) 键下列常数代表功能键:
值描述
0x70 F1 键
0x71 F2 键
0x72 F3 键
0x73 F4 键
0x74 F5 键
0x75 F6 键
0x76 F7 键
0x77 F8 键
0x78 F9 键
0x79 F10 键
0x7A F11 键
0x7B F12 键
0x7C F13 键
0x7D F14 键
0x7E F15 键
0x7F F16 键。