我目前正在开展一个项目,要求我知道何时将鼠标拖到左侧或右侧。
我想对这些信息做些什么,是在3d空间(使用OpenGL / Win32)中向左或向右拖动一个对象,具体取决于拖动鼠标的方式。
问题是,我不知道如何确定拖动鼠标的方式。
我尝试找到前一个x坐标,并从当前x坐标中减去它,但我不知道如何确定前一个x坐标!
有人可以帮帮我吗?
( PS 我已经知道当前的x鼠标位置是用LOWORD(lParam)找到的,但我不知道如何确定以前的x鼠标位置。感谢您的时间。 )
答案 0 :(得分:3)
您可以将当前鼠标位置存储为“最后”鼠标位置,然后在两次鼠标位置更新后减去。
onMouseMove(mouseX, mouseY):
if previousX and previousY are set:
deltaX = previousX - mouseX
deltaY = previousY - mouseY
actOnDrag(deltaX, deltaY)
previousX = mouseX
previousY = mouseY
您可以将previousX
和previousY
设置为某个疯狂的哨兵值(例如-1),以确定它们是否曾被设置过。
答案 1 :(得分:0)
您可以使用DragDetect
函数。
BOOL DragDetect(HWND hwnd, POINT pt);
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-dragdetect