如何实现,点击一个按钮,然后按钮凹下去,手移开按钮再弹起来?(注:触摸屏只有Click事件,Mousedown,Mouseup都不能实现这个功能)
解决方案 »
- VB6.0中TDBgrid把某列设置成combox后,怎么赋值
- 删除数组中的0
- 谁有activereport注册码呀?不注册能用吗?小弟求大家了。!!!!
- 一个关于数据库的问题,急!分不够再加
- 有没有用 CDMA 手机 发短信的软件产品啊?
- 树形控件问题.
- ComboBox数据绑定后,如何令ComboBox的下拉选项为数据库中某字段的所有记录???
- 关于treeview控件
- 请问内存插反会烧掉主板吗?
- Inet1控件问题!50分奉送(回答以前的问题-用Inet1控件做ftp下载问题,急!!!,分照送!)
- 高中信息技术为什么要学VB, 能不学吗!?
- vb的Webbrowser控件有时加载网页会很慢,如何设置从加载开始3秒后,无论是否加载完毕,都停止网页加载?
为什么"Mousedown,Mouseup都不能实现这个功能"?只有Mousedown,Mouseup才能实现这个功能
Line (0, 0)-(Me.Width, Me.FontSize * 15), &H8000000F, BF
Me.CurrentX = 0
Me.CurrentY = 0
Print "MouseDown Button:" & Button & " X:" & X & " Y:" & Y
End SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Line (0, Me.FontSize * 15 + 15)-(Me.Width, (Me.FontSize * 15) * 2), &H8000000F, BF
Me.CurrentX = 0
Me.CurrentY = Me.FontSize * 15
Print "MouseMove Button:" & Button & " X:" & X & " Y:" & Y
End SubPrivate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Line (0, (Me.FontSize * 15) * 2 + 15)-(Me.Width, (Me.FontSize * 15) * 3), &H8000000F, BF
Me.CurrentX = 0
Me.CurrentY = (Me.FontSize * 15) * 2
Print "MouseUp Button:" & Button & " X:" & X & " Y:" & Y
End Sub
如果实在不行你可以尝试在 Click 事件里启动一个定时器模拟点击效果,如:Dim ButtDown As Picture
Dim ButtUp As Picture
Private Sub Form_Load()
Timer1.Enabled = False
Set ButtDown = LoadPicture("C:\but1.jpg")
Set ButtUp = LoadPicture("C:\but2.jpg")
End SubPrivate Sub Picture1_Click()
Picture1.Picture = ButtDown
Timer1.Interval = 500
Timer1.Enabled = True
End SubPrivate Sub Timer1_Timer()
Timer1.Enabled = False
Picture1.Picture = ButtUp
End Sub
就触摸屏硬件来说,主要分三类,
一类为电阻式,无非就是用A/D转换方式采集纵横两条线路并运算成X,Y坐标功能,因为有能采集到和不能采集到数据的区分,所以可以有MouseDown和MouseUp的消息触发区分,如果在较短的时间内检测上一次记录的X、Y坐标发生变化,同时没有检测过空的情况(即MouseUp状态),就会触发MouseMove并将其button参数设置为1,表示鼠标按下时移动的。
还有一类为电容式(人体静电感应)和光感式(红外传感器矩阵),虽然其数据采集特性不同,但他们能采集到x、y坐标的特性是一样的,如果说有特别的,那就是那种绘图板,拥有磁感应和细分压力的能力,可以根据画笔悬空状态的磁力采集到x、y的坐标,当画笔触碰到画板时,还可以完整的模拟鼠标的操作,甚至在驱动中还提供扩展数据“压力值”。
如果说不能触发这种事件,应该是检测方法不对或因为效率太低导致消息丢失,再有可能就是驱动有问题,在我用过的多种触摸屏来说,没有这种现象发生。
用timer控件来实现这个功能,我早做好了,只是想问一下有没有其他的方法来实现这样的功能。