Расположение VBA GetCursorPos X / Y в активном окне, а не на рабочем столе - PullRequest
0 голосов
/ 30 октября 2018

Я использую GetCursorPos в некотором коде VBA, и он работает хорошо, но не тогда, когда приложение не открывается в полноэкранном режиме. Расположение X / Y зависит от расположения на рабочем столе мыши, а не от местоположения в окне приложения. Есть ли способ, чтобы он основывал расположение X / Y на активном окне или приложении, в котором работает VBA?

Я не знаю много о VBA, и это в приложении SCADA, а не в MS Office.

Я нашел этот код, но он не работает:

Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
    Private Type POINTAPI
        X As Long
        Y As Long
    End Type
    Dim Mouse As POINTAPI
    Dim Cmd As String
    Dim PNum As String

Private Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long


Private Sub Button3_Released()
    GetCursorPos Mouse
    ScreenToClient Me.Application.WindowHandle, Mouse
    MsgBox Mouse.X
End Sub

Теперь это работает!

Спасибо за помощь.

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