0

WM_LBUTTONDOWNがvb.netで送信されるときに、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))
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 に答える