VB 有关鼠标的操作
- 格式:pdf
- 大小:122.62 KB
- 文档页数:3
VB编程中的键盘和鼠标知识总结!大家好,今天我们来学习VB编程中的键盘与鼠标知识。
读书改变命运,这个理论在当今社会仍然适用。
并且越喜欢读书学习的人,越有更多机会去选择自己想要的生活。
不要惧怕读书的苦,这是你通向美好未来最好的路,共同努力!VB中的键盘与鼠标事件KeyPress事件KeyPress事件简介在窗体上画一个控件(指可以发生KeyPress事件的控件),并双击该控件,进入程序代码窗口后,从'过程'框中选取KeyPress,即可定义KeyPress事件过程。
一般格式为:Private Sub Text1_KeyPress(KeyAscii As Integer)'用户按下并释放一个能产生ASCII码的键时被触发End SubKeyPress事件带有一个参数,这个参数有两种形式:第1种形式是Index As Integer,只用于控件数组;第2种形式是KeyAscii As Integer,用于单个控件。
KeyDown和KeyUp事件KeyDown和KeyUp事件简介KeyDown和KeyUp事件的参数也有两种形式,其中Index As Integer只用于控件数组,而KeyCode As Integer,Shift As Integer用于单个控件。
KeyDown和KeyUp事件都有两个参数,即KeyCode和Shift。
①KeyCode是按键的实际ASCII码。
该码以'键'为准,而不是以'字符'为准。
②Shift转换键。
它指的是3个转换键的状态,包括Shift,Ctrl和Alt键,这3个键分别以二进制数形式表示,每个键有3位,即Shift 键为001,Ctrl键为010,Alt键为100。
Private Sub Command1_KeyDown(KeyCode As Integer, Shift As Integer)'用户按下任一个键时被触发End SubPrivate Sub Command1_KeyUp(KeyCode As Integer, Shift As Integer)'用户释放任一个键时被触发End Sub鼠标事件鼠标事件简介为了实现鼠标操作,Visual Basic中提供了以下3个事件过程。
VB中的键盘事件、鼠标事件、拖放技术键盘事件:参数是KeyAscii,每次按一下键盘上的一个键,相应的键的Ascii码值都要赋给参数KeyAscii,然后再执行相应的操作KeyPreview:接受键盘事件。
默认情况下,窗体的KeyPreview 属性为False,只有窗体获得焦点才能相应键盘事件;若窗体的KeyPreview属性为True,窗体会在空件之前首先截获键盘事件。
Shift And 7: 取Shift参数的低三位,因为7的二进制数是111,shift参数与111进行按位And运算,得到是按了三个功能键中的哪一个。
命令按钮控件的default属性用于设置默认命令按钮.,设置为true时,按[Enter键]相当于用鼠标单击了该按钮,Cancel属性为True,则Esc键触发按钮的Click事件快捷键的优先级高于键盘事件,鼠标事件:参数X和Y表示鼠标指针的位置Clc:清除图像。
划线函数Line格式:Line (x1, y1) -(x2, y2), [color], [B][F](x1, y1) 可选的。
Single (单精度浮点数),直线或矩形的起点坐标。
(x2, y2) 必选的。
Single (单精度浮点数),直线或矩形的终点坐标。
color 可选的。
Long (长整型数),画线时用的 RGB 颜色,可用RGB函数B 可选的。
如果包括,则利用对角坐标画出矩形。
F 可选的。
如果使用了 B 选项,则 F 选项规定矩形以矩形边框的颜色填充。
不能不用 B 而用F。
例:Line (0, 0)-(X, Y), vbGreen, BF拖放技术:DragMode属性:0—手动拖放,1—自动拖放DragDrop事件:Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)Source.Move X, YEnd Sub---Source表示拖放的控件,即DragMode属性为1的控件;xy 表示鼠标指针的位置坐标。
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属性返回或设置一个值,以决定是否在控件的键盘事件之前激活窗体的键盘事件。
VB操作鼠标的自定义类DIYMouse类DIYMouse类一DIYMouse类(使用说明)1、属性CurrentX 指针当前坐标的X值CurrentY指针当前坐标的Y值2、方法PointGoto(x1, y1) 指针移动到屏幕位置LeftClick 单击左键RightClick 单击右键MiddleClick 单击中键DoubleClick 双击左键LeftDown 左键按下LeftUp 左键弹起RightDown 右键按下RightUp 右键弹起MiddleDown 中键按下MiddleUp 中键弹起3、示例Option ExplicitDim M As New DIYMousePrivate Sub Command1_Click()Timer1.Interval = 100Timer1.Enabled = TrueEnd SubPrivate Sub Timer1_Timer()Me.Caption = M.CurrentX & "," & M.CurrentY '在标题上显示鼠标当前位置End SubPrivate Sub Command2_Click()M.PointGoto 200, 300 '鼠标移动到屏幕坐标(200,300)位置(单位是像素) M.LeftClick '单击左键M.RightClick '单击右键M.MiddleClick '单击中键M.DoubleClick '双击左键M.LeftDown '按下左键(不松开)M.LeftUp '弹起左键(松开)'……省略,其余功能暂不一一列举End Sub二DIYMouse类(代码)Option Explicit'DIYMouse类'获取鼠标指针在屏幕上的坐标Private Declare Function GetCursorPos Lib "user32" (lpPoint As PointAPI) As Long'设置鼠标指针在屏幕上的坐标Private Declare Function SetCursorPos Lib "user32" (ByV al sPointX As Long, ByV al _sPointY As Long) As Long'鼠标事件Private Declare Sub mouse_event Lib "user32" (ByV al dwFlags As Long, ByV al dx _As Long, ByV al dy As Long, ByV al cButtons As Long, ByV al dwExtraInfo As Long)Private Const MouseEventF_LeftDown = &H2 '左键按下Private Const MouseEventF_LeftUp = &H4 '左键抬起Private Const MouseEventF_MiddleDown = &H20 '中键按下Private Const MouseEventF_MiddleUp = &H40 '中键抬起Private Const MouseEventF_Move = &H1 '鼠标移动Private Const MouseEventF_RightDown = &H8 '右键按下Private Const MOUSEEVENTF_RightUp = &H10 '右键抬起Private Const MouseEventF_ABSOLUTE = &H8000 'dx和dy 指定鼠标坐标系统中的一个绝对位置。
VB鼠标的API函数使用详解鼠标是计算机中常用的输入设备之一,通过鼠标用户可以进行控制、操作等操作。
在使用VB编程时,我们可以通过API函数来实现鼠标的一些特定操作,如设置鼠标的位置、隐藏或显示鼠标指针等。
下面我们就来详细介绍一下VB中鼠标的API函数使用方法。
首先,我们需要在VB的代码窗口中声明API函数,这样我们才能在程序中使用这些函数。
在VB中,我们可以使用Declare语句来声明API函数,如下所示:```Private Declare Function 函数名 Lib "dll文件名" (参数列表)As 返回值类型```其中,函数名是API函数的名称,Lib是API函数所在的dll文件名,参数列表是API函数的参数列表,返回值类型是API函数的返回值类型。
1.设置鼠标的位置鼠标的位置可以通过API函数SetCursorPos来设置,代码如下:```Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As LongSub SetMousePosition(ByVal X As Long, ByVal Y As Long)SetCursorPos X, YEnd Sub```在上述代码中,我们使用Declare语句声明了SetCursorPos函数,该函数位于user32.dll文件中。
然后我们定义了一个名为SetMousePosition的子过程,通过调用SetCursorPos函数来设置鼠标的位置。
2.隐藏或显示鼠标指针我们可以使用API函数ShowCursor来隐藏或显示鼠标指针,代码如下:```Private Declare Function ShowCursor Lib "user32" (ByVal bShow As Long) As LongSub HideCursorShowCursor FalseEnd SubSub ShowCursorShowCursor TrueEnd Sub```在上述代码中,我们使用Declare语句声明了ShowCursor函数,该函数位于user32.dll文件中。
VB程序设计键盘与鼠标事件过程11.1 键盘事件在Visual Basic中,窗体和接受键盘输入的控件都能识别这三种键盘事件:一是KeyPress,按下对应某ASCII字符的键;二是KeyDown,按下键盘的任意键;三是KeyUp,释放键盘的任意键。
只有获得焦点的对象才能接受键盘事件。
11.1.1 KeyPress事件当按下某个键时,将触发拥有输入焦点(Focus)的那个控件的KeyPress事件,返回“所按字符”的ASCII码。
语法格式:Sub Object_KeyPress(KeyAscii As Integer)或Sub Object_KeyPress([index As Integer,]KeyAscii As Integer) 说明:1、Object:是指窗体或控件对象名;2、index:一个整数,它用来惟一标识一个控件数组中的控件;3、KeyAscii:是指KeyAscii参数返回对应ASCII字符代码的整型数值;KeyPress事件带有一个参数,这个参数有两种形式。
第一种形式为:Index As Integer,这种形式只用于控件数组;第二种形式为:KeyAscii As Integer,这种形式只用于单个控件。
11.1.2 KeyDown事件和KeyUp事件当按下或松开某个键时,将触发拥有输入焦点(Focus)的那个控件的KeyDown事件或者KeyUp事件,返回键盘的直接状态。
KeyDown事件和KeyUp事件的参数也有两种形式:(1)Index As Integer 只用于控件数组。
(2)KeyCode As Integer,Shift As Integer 用于单个控件,本章只讨论这种形式。
语法格式为:Sub Object_KeyDown(KeyCode As Integer,Shift AsInteger)Sub Object_KeyUp(KeyCode As Integer,Shift As Integer)说明:1.KeyCode参数KeyCode表示按下的物理键,以“键”为准,而不是以“字符”为准。
VB鼠标的API函数使用详解1. MouseDown(Button, Shift, X, Y)该函数用于模拟鼠标按下按钮的动作,Button参数可以是常量vbLeftButton、vbRightButton或vbMiddleButton,用于指示要模拟按下的鼠标键;Shift参数可以是常量vbShiftMask、vbCtrlMask或vbAltMask,表示按下Shift、Ctrl、Alt键的状态,如果Shift参数没有指定,则默认为不按下Shift、Ctrl、Alt键;X参数表示鼠标按下点的横坐标,Y参数表示鼠标按下点的纵坐标。
2. MouseUp(Button, Shift, X, Y)该函数用于模拟鼠标抬起按钮的动作,Button参数可以是常量vbLeftButton、vbRightButton或vbMiddleButton,用于指示要模拟抬起的鼠标键;Shift参数可以是常量vbShiftMask、vbCtrlMask或vbAltMask,表示抬起Shift、Ctrl、Alt键的状态,如果Shift参数没有指定,则默认为不抬起Shift、Ctrl、Alt键;X参数表示鼠标抬起点的横坐标,Y参数表示鼠标抬起点的纵坐标。
3. MouseMove(X, Y)该函数用于模拟鼠标移动的动作,X参数表示鼠标移动目标点的横坐标,Y参数表示鼠标移动目标点的纵坐标。
4. MouseWheel(WheelClicks)该函数用于模拟鼠标滚轮操作,WheelClicks参数表示要模拟的滚轮点击数,每次滚轮转动一次,WheelClicks参数的值就会增加或减少一;如果是向前滚动,则WheelClicks参数值应该大于0;如果是向后滚动,则WheelClicks参数值应该小于0。
5. DragPicture(Picture, X1, Y1, X2, Y2, Mode)该函数用于拖拽图形,Picture参数表示拖拽对象。
VB 有关鼠标的操作
假如没有鼠标,电脑的普及率绝对没有目前这么高。
在windows下,鼠标的作用不亚于键盘。
因此,在VB中设计基于windows下的应用程序,鼠标的操作和设计是非常重要的。
一、鼠标的移动、按键事件
要想在VB程序中自如应用鼠标,先要了解有关鼠标的事件,并学会如何编写这些事件过程。
最常见的鼠标事件有:
当在某个对象上移动鼠标、按下鼠标按键、释放鼠标按键时均会触发鼠标事件,它们分别是:MouseMove、MouseDown、MouseUp。
这三个鼠标事件过程均会返回四个参数:Button As Integer, Shift As
具体解释如下:
1、 MouseDown事件
当单击鼠标上的任何一个按键之后,都会引起MouseDown事件。
许多对象都有这个事件。
如用鼠标在窗体上单击,可以引发这个事件,用鼠标单击“按钮”“标签”“文本框”等对象也可以引发这个事件。
该事件还带回来不少参数,下面是鼠标单击窗体任何位置所引发的MouseDown事件,单击其它对象所带回的参数与此相同:
Private Sub Form_MouseDown(Button As Integer,Shift As Integer,X As Integer,Y As Integer)
End Sub
其中:
(1)、Button参数
Button参数带回来的信息是用户按了鼠标上的哪能一个键,左键?右键?还是中间键?
Button=1,说明用户按的是鼠标的左键;
Button=2,说明用户按的是鼠标的右键;
Button=4,说明用户按的是鼠标的中间键;
(2)、Shift参数
Shift参数带回来的是用户按鼠标按键时是否同时按下了键盘上的Shift、Ctrl、Alt键。
Shift=1,说明用户在按下鼠标按键的同时,还按下了键盘上的Shift键;Shift=2,说明用户在按下鼠标按键的同时,还按下了键盘上的Ctrl键;
Shift=3,说明用户在按下鼠标按键的同时,还按下了键盘上的Shift和Ctrl键;
Shift=4,说明用户在按下鼠标按键的同时,还按下了键盘上的Alt键;Shift=5,说明用户在按下鼠标按键的同时,还按下了键盘上的Shift和Alt键;
Shift=6,说明用户在按下鼠标按键的同时,还按下了键盘上的Ctrl和Alt 键;
Shift=7,说明用户在按下鼠标按键的同时,还按下了键盘上的Shift、Ctrl和Alt键;
(3)、X,Y参数
X,Y参数带回来的是鼠标指针在屏幕上的坐标(x,y)。
2、MouseMove事件
当在任何对象上移动鼠标时,会引发MouseMove事件。
下面是鼠标在窗体上任何位置移动所引发的MouseMove事件,鼠标在其它对象上移动所带回的参数与此相同:
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
End Sub
其中所返回的参数Button、Shift、X、Y与MouseDown事件过程返回的参数完全相同,这里不再重复。
3、MouseUp事件
当鼠标单击任何一个对象,松开鼠标按键时,都会引起MouseUp事件,同时还带回来不少参数,下面是鼠标单击窗体上任何一个位置,松开鼠标按钮时所引发的MouseUp事件,对于其它对象所带回的参数与此相同:
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
End Sub
其中所带回的参数Button、Shift、X、Y与MouseDown事件返回的参数完全相同,这里不再重复。