配色: 字号:
第五章 键盘与鼠标
2016-06-21 | 阅:  转:  |  分享 
  
猴子吃桃问题:猴子第一天摘了若干个桃,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃吃掉一半,又多吃了一个。以后每天
早上都吃了前一天剩下的一半零一个。到第10天早上想吃时,见剩下一个桃了。求第一天共摘了多少?第五章键盘和鼠标事件事件驱
动窗口、事件和消息事件驱动应用程序的工作方式启动应用程序,装载和显示窗体。窗体(或控件)接收事件。用户引发(如键盘
操作)系统引发(如定时器事件)代码间接引发在引发的事件过程中有代码,执行代码。应用程序等待下一次事件。一、键盘事
件2.KeyDown和KeyUp事件PrivateSubText1_KeyDown(KeyCodeAsInte
ger,ShiftAsInteger)IfKeyCode=vbKeyAAndShift=1Then
MsgBox"你按下了大写字母A!"EndIfEndSubPrivateSubForm_Load()
Text1.Text=""Text1.SetFocusEndSubPrivateSubText1_KeyDo
wn(KeyCodeAsInteger,ShiftAsInteger)PrintChr(KeyCode)End
SubPrivateSubText1_KeyUp(KeyCodeAsInteger,ShiftAsInteger
)PrintChr(KeyCode+2)EndSub二、鼠标事件PrivateSubForm_Mous
eUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSin
gle)Print"程序设计"EndSubPrivateSubText1_KeyDown(KeyCodeAs
Integer,ShiftAsInteger)Print"VisualBasic";EndSub鼠标指针的形
状通过修改MousePointer属性可以改变鼠标指针的形状VisualBasic提供了16个可选的指针形状每种指针都对
应着一个整型数和VisualBasic常数MousePointer的属性见实验5表5-3所示拖放例子(按钮)添加
一命令按钮并设置其DragMode属性为1PrivateSubForm_DragDrop(SourceAsContr
ol,XAsSingle,YAsSingle)Source.MoveX,YEndSubPrivateS
ubForm_DragOver(SourceAsControl,XAsSingle,YAsSingle,Sta
teAsInteger)Form1.Caption=X&","&Y本章小结:1.理解鼠标、键盘事件的触
发机制,2.掌握鼠标的MouseDown,MouseMove,MouseUp事件中各参数的含义及编程控制3.掌握
键盘的KeyDown,KeyPress,KeyUp事件中各参数的含义及编程控制第五章VisualB
ASIC程序设计本章内容及要求:鼠标的MouseDown,MouseMove,MouseUp事件键盘的Ke
yDown,KeyPress,KeyUp事件重点:键盘与鼠标事件过程在VisualBasic中,提供KeyPre
ss、KeyDown、KeyUp三种键盘事件,窗体和接受键盘输入的控件都识别这三种事件。KeyPress按下对应某AS
CII字符的键。KeyDown按下键盘的任意键。KeyUp释放键盘的任意键只有获得焦点的对象才能够接
受键盘事件。1.KeyPress事件在按下与ASCII字符对应的键时将触发KeyPress事件。KeyPress
事件过程的语法格式是:SubObject_KeyPress(KeyAsciiAsInteger)其中:例如,如果希
望将文本框中的所有字符都强制转换为大写字符,则可在输入时使用此事件转换大小写:PrivateSubText1_KeyPres
s(KeyAsciiAsInteger)KeyAscii=Asc(Ucase(Chr(KeyAscii)))E
ndSubObject是指窗体或控件对象名,KeyAscii参数返回对应于ASCII字符代码的整型数值。
KeyPress事件只识别Enter、Tab和Backspace键。不能能够检测其它功能键、编辑键和定位键。
当一个对象具有焦点时按下(KeyDown)或松开(KeyUp)一个键时发生。它们报告键盘本身准确的物理状态:
按下键(KeyDown)及松开键(KeyUp)。KeyDown和KeyUp事件能够检测其它功能键、编辑键和定位键。Ke
yUp和KeyDown事件过程的语法格式如下:SubObject_KeyDown(KeyCodeAsInteger,
ShiftAsInteger)SubObject_KeyUp(KeyCodeAsInteger,ShiftAs
Integer)说明:(1).Keycode参数表示按下的物理键。上档键字符和下档键字符也是使用同一键,它们的Keycode
值相同。keycode参数通过ASCII值或键代码常数来识别键。字母键的键代码与此字母的大写字符的ASCII值相同
。所以"A"和"a"的keycode都是由Asc("A")返回的数值。在下例中用KeyDown事件判断是否按下
了"A"键:Keycode与KeyAscii的值(2).shift参数shift 表示是在该事件发生时响应SHIFT、C
TRL和ALT键的状态,它是一个整数。按下/松开Ctrl+Shift+Alt组合键vbCtrlMask+VBShiftM
ask+VBAltMask7按下/松开Ctrl+Alt组合键vbCtrlMask+VBAltMask6按下/松开Alt+
Shift组合键vbAltMask+VBShiftMask5按下/松开Alt键vbAltMask4按下/松开Ctrl+
Shift组合键vbCtrlMask+vbShiftMask3按下/松开Ctrl键vbCtrlMask2按下/松开Sh
ift键vbShiftMask1按下/松开的单键,非组合键(空)0含义VisualBasic常数Shif
t的十进制值大多数控件能够识别鼠标的MouseMove、MouseDown和MouseUp事件,通过响应这些鼠标
事件,能在应用程序对鼠标位置及状态的变化作出响应操作。MouseMove每当鼠标指针移动到屏幕新位置时发生Mou
seDown按下任意鼠标键按钮时发生MouseUp释放任意鼠标键按钮时发生MouseMov
e、MouseDown、MouseUp三个事件的过程的语法格式如下:SubObject_MouseMove(ButtonAs
Integer,ShiftAsInteger,_
XAsSingle,YAsSingle)SubObject_MouseDown(ButtonAsInte
ger,ShiftAsInteger,_X
AsSingle,YAsSingle)SubObject_MouseUp(ButtonAsInteger,Shif
tAsInteger,_XAsS
ingle,YAsSingle)其中:1.Object是可选的一个对象表达式,可以是窗体对象和大多数可视控件。2.Bu
tton参数是表示按下或松开鼠标哪个按钮。三、鼠标事件过程参数Button值参数(
Button) 值 说明vbLeftButton 1 左按钮被按下vbRightButton 2
右按钮被按下vbMiddleButton 4 中间按钮被按下3.通过S
hift参数表示在Button参数指定的按钮被按下或者被松开的情况下键盘的Shift、Ctrl和Alt键的状态。
参数Shift值参数(Shift)值 描述vbShiftMask
1 SHIFT键被按下vbCtrlMask 2 CTRL键被按下v
bAltMask 4 ALT键被按下大家想想,执行上述程序,会出现什么?Ctrl、Shift、Al
t三键组合使用情况如下表:4.参数X、YX,Y鼠标指针的位置,通过X和Y参数返回一个指定鼠标
指针当前位置的数,X和Y的值是使用该对象的坐标系统表示鼠标指针当前位置。注意:鼠标事件被用来识别和响应各种
鼠标状态,并把这些状态看作独立的事件,在按下鼠标按钮并释放时,Click事件只能把此过程识别为一个单一的单击操作。鼠标事件能够区
分各鼠标按钮及键盘的SHIFT、CTRL、ALT键的状态。例使用MouseUp与MouseDown和MouseMo
ve事件,编写一个在窗体上用鼠标绘图的简单程序。PrivateSubForm_MouseMove(ButtonAsI
nteger,ShiftAsInteger,_XAsSing
le,YAsSingle)Line-(X,Y)''移动鼠标时,会在窗体中的上次位置与当前鼠标指针之间画线EndSub四、拖放在运行时拖动控件,通常情况下并不能自动改变控件位置,这就必须使用VisualBasic的拖放功能,通过编程,才能实现在运行时拖动控件并改变其位置。把按下鼠标按钮并移动控件的操作称为拖动,把释放按钮的操作称为放下。拖放属性、事件和方法OLE拖放VisualBasic支持OLE拖放,使用这种强大且实用的工具,可以在其他支持OLE拖放的应用程序(如Windows资源管理器、Word和Excel等等)之间、控件之间拖放数据。
献花(0)
+1
(本文系信检彭博海...首藏)