我为我无法控制的对话框添加了一个键盘钩子(它在封闭源代码的库中运行自己的 DialogProc 函数)。我能够捕捉击键,但击键总是发送到对话框中。这会导致错误哔声以及一些奇怪的行为。
安装挂钩:
hKeyHook=SetWindowsHookEx(WH_KEYBOARD, KeyHookProc, hInst, GetCurrentThreadId());
钩子函数:
LRESULT CALLBACK KeyHookProc(int code, WPARAM wParam, LPARAM lParam)
{
if(!(lParam & 0x80000000))
{
if(wParam == VK_mykey)
{
// Do my stuff
return 0; // Don't continue the hook chain
}
}
// Continue with next hook
return CallNextHookEx(hKeyHook, code, wParam, lParam);
}
释放钩子:
UnhookWindowsHookEx(hKeyHook);
有没有办法阻止击键被发送到对话框中具有焦点的控件?