我希望在鼠标光标从箭头变为沙漏等时收到通知。
到目前为止,我设法获得鼠标位置更改事件的通知,但我无法弄清楚如何获取光标类型。看起来PCURSORINFO结构不包含有关游标类型的任何信息。
这是我迄今为止的代码:
static LRESULT CALLBACK WinEventCallback(_In_ int nCode,
_In_ WPARAM wParam,
_In_ LPARAM lParam)
{
PCURSORINFO curInfo;
curInfo->cbSize = sizeof(curInfo);
GetCursorInfo(curInfo);
}
void MouseCursorHook::setMouseCursorHook()
{
HHOOK evntHook = SetWindowsHookEx(WH_MOUSE_LL,
WinEventCallback,
GetModuleHandle(0),
0
);
}
答案 0 :(得分:1)
首先,您对GetCursorInfo()
的来电是错误的。你正在传递一个未初始化的指针。它应该是这样的:
CURSORINFO curInfo = {};
curInfo.cbSize = sizeof(curInfo);
GetCursorInfo(&curInfo);
其次,CURSORINFO
有一个hCursor
字段。您可以将其与LoadCursor()
/ LoadImage()
的返回值进行比较,以查看是否正在使用标准游标。但是,您必须单独比较每个标准光标。