【发布时间】:2013-12-16 12:50:22
【问题描述】:
我正在为我的游戏程序处理一项任务,在该任务中,我想在离开屏幕 10 秒后隐藏鼠标。但是我可以检查鼠标移动情况...... 这是我的代码..
using namespace std;
HHOOK g_hMouseHook;
LRESULT CALLBACK LowLevelMouseProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode >= 0)
{
PMSLLHOOKSTRUCT pmll = (PMSLLHOOKSTRUCT) lParam;
switch (wParam)
{
case WM_MOUSEMOVE:
printf("Mouse has been moved\n");
break;
}
}
return CallNextHookEx(g_hMouseHook, nCode, wParam, lParam);
}
int _tmain(int argc, _TCHAR* argv[])
{
MSG msg;
g_hMouseHook = SetWindowsHookEx( WH_MOUSE_LL, LowLevelMouseProc, GetModuleHandle(NULL), 0 );
if (!g_hMouseHook)
printf("err: %d\n", GetLastError());
while ( GetMessage(&msg, NULL, 0, 0) )
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
UnhookWindowsHookEx(g_hMouseHook);
return (int) msg.wParam;
}
我正在使用钩子来完成它,它成功地显示了鼠标移动。 现在我正在寻找一个选项,我还可以使用它来检查我的鼠标是否没有移动。 *我正在控制台上做的一件事。
我已经使用 LoadCursorfromFile 更改了鼠标光标或隐藏,它工作正常。
请分享您的意见以检查鼠标何时不移动。
【问题讨论】:
-
你用的是什么库?
-
设置一个超时回调,如果鼠标被移动则移除它并创建新的超时。
-
这样的事情在标准 C++ 中是不可能的。您将不得不使用第三方库,而且您似乎正在使用第三方库。哪一个?我猜是 WinAPI?
-
标记的 WinAPI,对熟悉它的人来说相当明显。
-
抱歉回复晚了,我用的是WinAPI。
标签: c++ winapi visual-c++