自定义 LowLevelMouseProc 回调函数不阻止输入
custom LowLevelMouseProc callback function not blocking input
我正在尝试通过挂钩全局WH_MOUSE_LL处理程序来禁用窗口中的鼠标右键单击按钮,该处理程序负责以下鼠标事件
WM_RBUTTONDOWN
.现在,我能够用我自己的自定义 LowLevelMouseProc 回调函数挂接处理程序,因为我应该从我的控制台出来。代码在当前时刻非常小且整洁,如下所示:
LRESULT CALLBACK LowLevelMouseProc(int nCode, WPARAM wParam, LPARAM
lParam);
LRESULT CALLBACK myLowLevelMouseProc(int nCode, WPARAM wParam, LPARAM
lParam)
{
if (nCode == 0 && wParam == WM_RBUTTONDOWN)
{
cout << "RBUTTONDOWN intercepted" << endl; // gets outputed whenever i press my right mouse button.
return -1;
}
return CallNextHookEx(hook, nCode, wParam, lParam);
}
int messages()
{
while (msg.message != WM_QUIT)
{
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return (int)msg.wParam;
}
int main()
{
hook = SetWindowsHookExW(WH_MOUSE_LL, myLowLevelMouseProc, NULL,
0);
return messages();
}
这里的问题是,鼠标右键单击仍然通过,并且没有被阻止。我尝试到处寻找,并返回非零"应该"阻止单击,但它没有。
检查 wParam WM_RBUTTONUP 以及WM_RBUTTONDOWN时修复了问题
改变
if (nCode == 0 && wParam == WM_RBUTTONDOWN)
自:
if (nCode == 0 && wParam == WM_RBUTTONDOWN || wParam == WM_RBUTTONUP)
相关文章:
- 通过 ssh 发送参数.是否有非阻塞输入函数?
- 将int输入函数,将int输入开关,然后更改int的值
- 不能将类中的输入函数与带参数的函数分开
- "cin.get"停止了另一个输入函数,如"cin"..C++
- 模板函数中的错误以获取来自C 输入函数的参数类型
- 两个输入函数的 T(n) 运行时
- 指针在输入函数时丢失值
- (C++)对文件输入函数的递归调用
- 在 Linux 上使用 C 中的输入函数,无需按回车键
- 我在输入函数上做错了什么
- 简单的c++输入函数
- 如何确定未格式化输入函数读取的字符数
- 当我超过第一个 getline() 的输入中的数组大小时,第二个 getline 或其他输入函数不起作用
- 将文件读取到向量中,我的输入函数有什么问题?
- Pthread_create似乎清空了传递给输入函数的参数
- 将具有可变参数的输入函数转换为成员函数
- 直接输入函数
- 如何:捕获输入函数异常的可变包装函数
- 返回命令输入函数
- 是否可以在if语句中使用_getch()或cin或任何输入函数?