vb 鼠标移动的问题

1.按按钮1(或者crtl键),添加当前鼠标的坐标.添加多个.数量不一定,有时候3个,有时候5个.(能把这些坐标显示在文本框,或者列表框最好)2.按按钮2,先后将鼠标移到... 1. 按按钮1 (或者crtl 键),添加当前鼠标的坐标.
添加多个. 数量不一定,有时候3个,有时候5个. (能把这些坐标
显示在文本框,或者列表框最好)
2. 按按钮2 ,先后将鼠标移到添加的坐标位置,按下
鼠标左键.
比方说,移到100,201,然后按下鼠标左键,再移到530,425,按下左键..
依次这样子.

请指教下代码.谢谢
展开
 我来答
bydosniper
2010-05-13 · TA获得超过1059个赞
知道小有建树答主
回答量:605
采纳率:100%
帮助的人:233万
展开全部

Option Explicit

'四个API : GetAsyncKeyState,mouse_event 和 GetCursorPos,SetCursorPos

'一个Timer,一个CommandButton

Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dX As Long, ByVal dY As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)

Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

Private Type POINTAPI

 X As Long

 Y As Long

End Type

Private Sub Command1_Click()

    Dim dX As Integer, dY As Integer

    Dim p As Long, k As Integer

    For k = 1 To List1.ListCount

        p = InStr(List1.List(k - 1), ",")

        dX = CInt(Left(List1.List(k - 1), p - 1))

        dY = CInt(Mid(List1.List(k - 1), p + 1))

        SetCursorPos dX, dY

        mouse_event &H6, 0, 0, 0, 0

    Next k

End Sub

Private Sub Form_Load()

    Timer1.Interval = 100

    Command1.Caption = "执行"

End Sub

Private Sub Timer1_Timer()

    Dim p As POINTAPI

    GetCursorPos p

    Me.Caption = "(" & CStr(p.X) & "," & CStr(p.Y) & ")"

    If GetAsyncKeyState(vbKeyControl) And &H8000 Then

        List1.AddItem CStr(p.X) & "," & CStr(p.Y)

    ElseIf GetAsyncKeyState(vbKeyEscape) And &H8000 Then

        '按下ESC 清除列表

        List1.Clear

    End If

End Sub

莱莉施煊
2020-03-31 · TA获得超过3961个赞
知道小有建树答主
回答量:3100
采纳率:33%
帮助的人:201万
展开全部
那是用三幅图实现,需要可联系
Private
Sub
Picture1_MouseDown(Button
As
Integer,
Shift
As
Integer,
x
As
Single,
y
As
Single)
Picture1.Picture
=
LoadPicture("空白图")
Screen.MousePointer
=
vbCustom
Screen.MouseIcon
=
LoadPicture("指针图")
SetCapture
(Picture1.hwnd)
End
Sub
Private
Sub
Picture1_MouseUp(Button
As
Integer,
Shift
As
Integer,
x
As
Single,
y
As
Single)
Picture1.Picture
=
LoadPicture("完整图")
Screen.MousePointer
=
vbDefault
End
Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式