我希望在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))
答案 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