js 检测鼠标滚轮上下滚动
js检测鼠标滚轮上下滚动初始值i为1滚动一下i+1直到i=4为止滚轮往上滚时i开始减一减到1为止如果能写JQuery就更好了...
js 检测鼠标滚轮上下滚动 初始值i为1 滚动一下 i+1 直到i=4 为止 滚轮往上滚时 i开始减一 减到1为止
如果能写JQuery就更好了 展开
如果能写JQuery就更好了 展开
2个回答
展开全部
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { int delta; //一次滑动量 TCHAR szMessage[120]; static int time; //最后一次滚动时的时间值 static int start; //第一次滚动前的刻度值 static int index=10; //最后一次滚动后的刻度值 static BOOL bStart=FALSE; //是否第一次滚动鼠标 switch (message) { case WM_CREATE: SetTimer(hWnd,500,500,NULL); break; case WM_MOUSEWHEEL: delta=GET_WHEEL_DELTA_WPARAM(wParam); if(delta>0) { int line=delta/40; if(line+index<=100) //放大位图逻辑 { if(!bStart) { start=index; //记录第一次刻度值 } index+=line; //刷新最近刻度值 _stprintf(szMessage,_T("向上滚动%d行\n"),line); time=GetTickCount(); bStart=TRUE; OutputDebugString(szMessage); } } else { int line=-delta/40; if(index-line>=0) //缩小位图逻辑 { if(!bStart) start=index; index-=line; _stprintf(szMessage,_T("向下滚动%d行\n"),line); time=GetTickCount(); //刷新当前时间值 bStart=TRUE; OutputDebugString(szMessage); } } break; case WM_TIMER: { int tick=GetTickCount(); if(bStart && tick-time>500) //如果前后两次滚动事件超过半秒,开始绘图 { bStart=FALSE; int sub=index-start; //sub为正放大位图,为负缩小位图 TCHAR szMess[100]; _stprintf(szMess,_T("尺寸改变了%d个单位 当前刻度%d\n"),sub,index); OutputDebugString(szMess); //执行绘图 } } break; case WM_DESTROY: ::KillTimer(hWnd,500); PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; }
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询