VB程序中mousedown函数的一个问题?
PrivateSubcommand1_mousedown(buttonAsInteger,shiftAsInteger,xAsSingle,yAsSingle)print...
Private Sub command1_mousedown(button As Integer, shift As Integer, x As Single, y As Single)
print“你按下了鼠标键”
end sub
Private Sub command1_mousedown(button As Integer, shift As Integer, x As Single, y As Single)
print“你抬起了鼠标键”
end sub
这个程序目的是鼠标点击的时候和松开的时候,按钮分别显示不同的.ICO图标。并输出不同的信息。
VB程序。
。(button As Integer, shift As Integer, x As Single, y As Single)为什么要定义button、shift 、分别什么意思,初学者求详解 展开
print“你按下了鼠标键”
end sub
Private Sub command1_mousedown(button As Integer, shift As Integer, x As Single, y As Single)
print“你抬起了鼠标键”
end sub
这个程序目的是鼠标点击的时候和松开的时候,按钮分别显示不同的.ICO图标。并输出不同的信息。
VB程序。
。(button As Integer, shift As Integer, x As Single, y As Single)为什么要定义button、shift 、分别什么意思,初学者求详解 展开
1个回答
展开全部
这是个事件,不是函数。事件意味着当鼠标按下时,系统会自动调用这个过程。
你在处理这个事件时可能需要知道是按下了哪个键(button参数,比如鼠标左键,右键或者中键),是否同时按下了控制键(shift参数,比如Shift键,Ctrl键,Alt键)
参数的用法,用AND比较:
if button AND vbLeftButton Then '按下的是鼠标左键
If Shift AND vbKeyCtrl Then '按下了Ctrl键
这个两个参数可以组合判断,比如:
if (button AND vbRightButton) and (shift AND vbKeyShift) Then '按下 Shift 的同时点击右键
if (button AND vbLeftButton) and (button AND vbRightButton) Then '同时按下左右键,通常等同于中键
这两个都是以二进制表示的参数,每一位表示一个按键,可以完美的表示按键组合,比如:
vbLefttButton = 1 '00000001
vbRightButton = 2 '00000010
那么要表示左右键同时按下就是
vbRightButton + vbLefttButton = 3 '00000011
在判断时可以独立的判断某个键是否按下
if button AND vbLeftButton Then '按下了鼠标左键
if button = vbLeftButton Then '按下的仅仅是鼠标左键
也可以用多种方法判断按键组合
if (button AND vbLeftButton) and (button AND vbRightButton) Then
if button = (vbLeftButton+ vbRightButton) Then
if button =3 Then
你在处理这个事件时可能需要知道是按下了哪个键(button参数,比如鼠标左键,右键或者中键),是否同时按下了控制键(shift参数,比如Shift键,Ctrl键,Alt键)
参数的用法,用AND比较:
if button AND vbLeftButton Then '按下的是鼠标左键
If Shift AND vbKeyCtrl Then '按下了Ctrl键
这个两个参数可以组合判断,比如:
if (button AND vbRightButton) and (shift AND vbKeyShift) Then '按下 Shift 的同时点击右键
if (button AND vbLeftButton) and (button AND vbRightButton) Then '同时按下左右键,通常等同于中键
这两个都是以二进制表示的参数,每一位表示一个按键,可以完美的表示按键组合,比如:
vbLefttButton = 1 '00000001
vbRightButton = 2 '00000010
那么要表示左右键同时按下就是
vbRightButton + vbLefttButton = 3 '00000011
在判断时可以独立的判断某个键是否按下
if button AND vbLeftButton Then '按下了鼠标左键
if button = vbLeftButton Then '按下的仅仅是鼠标左键
也可以用多种方法判断按键组合
if (button AND vbLeftButton) and (button AND vbRightButton) Then
if button = (vbLeftButton+ vbRightButton) Then
if button =3 Then
追问
明白了一些!
再问一些 x As Single, y As Single 这个意思是一楼说的鼠标的坐标么?
Private Sub command1_click()
print"天天向上“
end sub
同样是鼠标点击 为什么这个就不用写那么多定义类型,还是说那些定义的类型的东西是mousedown事件必须要写的?
追答
Click 鼠标单击事件,没法区分按下的左键还是右键,事件发生在鼠标抬起后,也就是说,必须完成按下、抬起两个动作,Click 事件才生效。特例:点击按钮并移动到按钮外面再抬起,Click 事件将不起作用。
MouseDown 可以让你更加精确的控制鼠标行为,比如拖动窗体:在MouseDown 设置拖动状态,MouseMove 移动窗体,MouseUp 结束拖动状态
x,y 是鼠标按下时的坐标(相对坐标,不是屏幕坐标),在一些画图或者精确定位的程序里面是必须的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询