Я добавил хук клавиатуры для диалога, которым я не управляю (он запускает свою собственную функцию 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);
Есть ли способ остановить отправку нажатия клавиши на элемент управления, который имеет фокус в диалоговом окне?