13,825
社区成员
发帖
与我相关
我的任务
分享
LRESULT __stdcall MouseProc(
int code,WPARAM wParam,LPARAM lParam)
{
if (code <0){
CallNextHookEx(hNextHookProc2, code, wParam, lParam);
return 0;
}
//LPMOUSEHOOKSTRUCT lpMouseHook=(MOUSEHOOKSTRUCT *) lParam; //定义一个鼠标结构
if(wParam==WM_MOUSEMOVE && HC_ACTION==code)
{
//WaitForSingleObject(g_mutexDistance, 100);
MOUSEHOOKSTRUCT* pMHS = (MOUSEHOOKSTRUCT*)lParam;
if(g_firstTimeRecvMouseMove)
{
g_lastX = pMHS->pt.x;
g_lastY = pMHS->pt.y;
g_firstTimeRecvMouseMove = 0;
}
else
{
DWORD currX = pMHS->pt.x;
DWORD currY = pMHS->pt.y;
if(g_lastX != currX && g_lastY != currY)
{
//计算本次移动的距离
double dist = sqrt((double)(currX-g_lastX)*(currX-g_lastX) + (currY-g_lastY)*(currY-g_lastY));
if(dist > gb_Distance_Min)
{
gb_wDistance = *((UINT *)pGMem+3);
gb_wDistance = gb_wDistance+(int)dist;
*((UINT *)pGMem+3)= gb_wDistance;
g_lastX = pMHS->pt.x;
g_lastY = pMHS->pt.y;
}
}
}
//ReleaseMutex(g_mutexDistance);