Получить позицию из WM_LBUTTONDOWN SendMessage - PullRequest
0 голосов
/ 13 октября 2011

Я хотел бы получить позицию x, y из Params, когда WM_LBUTTONDOWN отправляется в vb.net.

Я получил это, чтобы создать параметр, но как мне получить из него позицию.

IntPtr lParam = (IntPtr)((y << 16) | x);

Моя функция:

Protected Overrides Sub WndProc(ByRef m As Message)
  Select Case m.Msg
    Case WM_LBUTTONDOWN

      'Get the X, Y from m.lparam

    Case Else
      MyBase.WndProc(m)
  End Select
End Sub

Обновление: я только что попробовал это, и он отлично работает.

Dim pos As New System.Drawing.Point(CInt(m.LParam))

Ответы [ 3 ]

2 голосов
/ 13 октября 2011
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
    If m.Msg = &H201 Then
        Dim pos As New Point(m.LParam.ToInt32())
        '--- etc...
    End If
    MyBase.WndProc(m)
End Sub
1 голос
/ 15 октября 2011

Я только что попробовал это, и он отлично работает.

Dim pos As New System.Drawing.Point(CInt(m.LParam))
0 голосов
/ 13 октября 2011

При получении сообщения WM_LBUTTONDOWN xpos = LOWORD (lParam) и yPos = HIWORD (lParam).

http://www.daniweb.com/software-development/vbnet/code/341269

...