Код кнопки мыши VBA работает только для кнопки 1, а не для кнопки 2 - PullRequest
0 голосов
/ 04 ноября 2018

VBA находится в приложении Rockwell Viw SE.

У меня есть код, который работает, но только если он связан с кнопкой мыши 1, и мне действительно нужно, чтобы это была кнопка 2 или функция щелчка правой кнопкой мыши. Код находится в подпрограмме MouseUp и используется для перемещения объекта на экране. Я уверен, что это всего лишь причуда VBA, но подумал, что может быть обходной путь.

Кнопка мыши 2 будет работать, но только если ее отпустить на тот же объект, что и при нажатии, кнопка мыши 1 не заботится о том, где на экране происходит сброс.

 Private Sub Box1_MouseUp(ByVal Button As DisplayClientEx.gfxMouseButtonConstants, ByVal Shift As Integer, ByVal X As Long, ByVal Y As Long)
    Dim XObject As Object
    Dim YObject As Object

    FindNumStart = InStrRev(Box1.ToolTipText, "[") + 1
    FindNumEnd = InStrRev(Box1.ToolTipText, "]")
    BoxNum = Mid(Box1.ToolTipText, FindNumStart, (FindNumEnd - FindNumStart))
    Set XObject = ThisDisplay.FindElement("XW" & BoxNum)
    Set YObject = ThisDisplay.FindElement("YW" & BoxNum)

    PNum = Box1.ToolTipText & ", " & Chr(34) & Mid(Box1.ToolTipText, 1, (FindNumStart - 14)) & "BoxPosition[" & BoxNum & Chr(34)
        If Button = 2 Then
            GetCursorPos Mouse
            ScreenToClient Me.Application.WindowHandle, Mouse
            Box1.Left = Mouse.X - 40
            Box1.Top = Mouse.Y - 78
            XObject.Value = Box1.Left
            XObject.Download
            YObject.Value = Box1.Top
            YObject.Download
        ElseIf Button = 1 Then
            GetCursorPos Mouse
            ExecuteCommand Cmd & " /X" & Box1.Left - 68 & " /Y" & Box1.Top + 100 & " /T " & PNum
        End If

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...