0

当 WM_LBUTTONDOWN 在 vb.net 中发送时,我想从参数中获取 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))
4

3 回答 3

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
于 2011-10-13T13:55:27.277 回答
1

我刚试过这个,它工作得很好。

Dim pos As New System.Drawing.Point(CInt(m.LParam))
于 2011-10-15T16:08:01.840 回答
0

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

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

于 2011-10-13T13:46:16.543 回答