作者hayabusasean (云湛)
看板Visual_Basic
标题Re: [VB6 ] 请问滑鼠侦测的问题
时间Tue Dec 10 11:41:24 2013
※ 引述《JOUMAX (JOUMAX)》之铭言:
: 大家好,想请问一下滑鼠侦测的问题
: 是这样的,我想写一个测LCD的程式
: 比如说有12个颜色,按一下滑鼠左键就换一个颜色
: 12个按完就自动结束,中途按右键则跳出
: (DisplayX公司用起来很慢,不知为什麽,其他的他们又不喜欢)
: 所以才想自己学VB自己写。。。
: 今天试了一下:
: Private Sub Form_MouseDown(button As Integer, Shift As Integer, X As Single,
: Y As Single)
: If button = 1 Then
: Form1.WindowState = 2
: Form1.BorderStyle = 0
: BackColor = RGB(255,255,0)
: End If
: If Button = 2 Then
: End
: End If
: End Sub
: 现在这样执行以後,点选滑鼠任意键,工作视窗是会放到最大,
: 然後变换成我要的颜色没错,按右键则是跳出来
: 可是想请问,那我想再按一下左键
: 换下个颜色,要怎麽做呢@@?
用API,GetAsyncKeyState (滑鼠左键按下:&H1)试试?
'取得键盘滑鼠状态(不论程式是否得到驻点)
Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
建一个Timer , 设interval 200左右就可以了
内容为:
If GetAsyncKeyState(&H1) Then
Do Until GetAsyncKeyState(&H1) = 0
DoEvents
Loop
你要做的事 !!
End If
不过这样滑鼠在任何地方只要按下左键,都会动作喔
可以再配合
'使用 GetCursorPos Windows API(取得滑鼠座标)
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Public Const CTimer As Integer = 1
Public Type POINTAPI
CurX As Long
CurY As Long
End Type
Public mouse As POINTAPI
一样在Timer里,加上
Call GetCursorPos(mouse) '<<<>>>
然後用mouse.CurX 和 mouse.CurY 座标来判断或指定你要的范围内按下滑鼠左键才会触发条件!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.220.247.236
1F:→ MOONRAKER:用叉子吃饭就好 为什麽要用锯子 12/10 14:28
2F:→ hayabusasean:他说叉子不行很诡异,所以把手边的锯子顺手抠给用= = 12/10 17:02
3F:→ MOONRAKER:是很诡异 :( Sorry 12/10 17:07
4F:推 JOUMAX:谢谢回应,我会好好研究的。应该是我程度差,可以的被我用 12/11 00:00
5F:→ JOUMAX:到不行。 12/11 00:01
6F:推 chinoyan:用锯子比较帅气@@ 12/11 07:09