如何知道用户是否停止滚动鼠标滚轮?目前,在我的WinProc函数下,c ++
case WM_MOUSEWHEEL:
if((int)wParam > 0)
//scroll forward
else if((int)wParam < 0)
//scroll backward
我看看msdn网站。如果鼠标滚轮停止,我找不到会触发的事件。 我该如何解决?
WM_MBUTTONUP,WM_MBUTTONDOWN处理单击鼠标滚轮。
答案 0 :(得分:1)
WM_MOUSEWHEEL
条消息。当用户停止滚动时,消息停止到达。这就是它的全部内容。
鼠标滚轮消息与鼠标按钮向下/向上消息对没有任何模拟。这是因为滚轮滚动是按钮按下的一个根本不同的动作。
答案 1 :(得分:0)
我更喜欢定义停止滚动的内容。我认为当用户停止滚动一段时间(例如.5s
)时,它似乎停止了。
static DWORD lastMouseScroll = 0;
static BOOL isStopped = FALSE;
...
case WM_MOUSEWHEEL:
if((int)wParam > 0)
{
lastMouseScroll = GetTickCount();
isStopped = FALSE;
}
else if((int)wParam < 0)
{
lastMouseScroll = GetTickCount();
isStopped = FALSE;
}
... outside of switch/case
if (!isStopped && GetTickCount()-lastMouseScroll > 500)
{
isStopped = TRUE;
// mouse is stopped !
}