0
在i接收的WndProc一個WM_MOUSEMOVE消息的lParam包含光標座標。我這個參數轉化爲Point
結構:WM_MOUSEMOVE Lparam型低位溢出
Friend Shared Function LParamToPoint(ByVal lParam As IntPtr) As Point
Return New Point(LOWORD(lParam.ToInt32()), HIWORD(lParam.ToInt32()))
End Function
Friend Shared Function HIWORD(ByVal value As Integer) As Short
Return CShort((value >> 16))
End Function
Friend Shared Function LOWORD(ByVal value As Integer) As Short
Return CShort((value And UShort.MaxValue))
End Function
我的問題是光標當x座標爲負的LOWORD函數失敗溢出異常。根據MSDN,您應該使用GET_X_LPARAM和GET_Y_LPARAM宏而不是HI/LO WORD宏。但是在vb.net中沒有這樣的函數可用。
那該怎麼辦?
這方式比更優雅我做法。非常感謝! –