从WM_LBUTTONDOWN SendMessage获取位置

时间:2011-10-13 13:33:42

标签: vb.net sendmessage wndproc

我希望在vb.net中发送WM_LBUTTONDOWN时从Params获取x,y位置。

我得到了这个以制作参数,但我如何从中得到这个位置。

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 个答案:

答案 0 :(得分:2)

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 :(得分:1)

我只是试过这个并且效果很好。

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

答案 2 :(得分:0)

当收到WM_LBUTTONDOWN消息时,xpos = LOWORD(lParam)和yPos = HIWORD(lParam)。

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