Я должен определить, когда мышь пытается двигаться (направление не важно).Я знаю, что это может звучать новобранцем, но это была одна неделя, и я не могу понять, как.
Решение попыталось:
, если мышь X и Y остаются одинаковымиМышь не двигается.Однако, когда я достигаю полей экрана (topleft, topright, bottomleft, ecc ..), X и Y остаются равными, и программа думает, что мышь перестала двигаться.Я достиг границы, но мышь все еще движется в этом направлении (или, по крайней мере, пытается)и это останавливает их функционирование (когда запускается ловушка, другие потоки временно игнорируются, пока не завершается функция ловушки)
Как я могу определить, пытается ли мышь какое-либо движение, в фоновом режимеfunction?
[Windows 7 x86, Codeblock, GCC, C ++]
ОБНОВЛЕНИЕ: Я НАШЕЛ РЕШЕНИЕ
MSG msg;
HHOOK MouseHook;
LRESULT CALLBACK mouseProc(int nCode, WPARAM wParam, LPARAM lParam)
{
cout << "Mouse Moved! " << endl;
return CallNextHookEx(MouseHook, nCode, wParam, lParam);
}
int main
{
Start_BackgroundThread1();
Start_BackgroundThread2();
MouseHook = SetWindowsHookEx(WH_MOUSE_LL, mouseProc, NULL, 0);
while(GetMessage(&msg, NULL, 0, 0))
{
}
}
Таким образом запускаются фоновые потокиДО входа в цикл GetMessage, и три функции обрабатываются одновременно.GetMessage зацикливается, поэтому он должен запускаться последним.