Ich habe einen Tastatur-Hook für einen Dialog hinzugefügt, den ich nicht kontrolliere (er führt seine eigene DialogProc-Funktion in einer Bibliothek mit geschlossener Quelle aus). Ich kann die Schlüsselstriche erfassen, aber der Schlüsselstrich wird immer an den Dialog gesendet. Dies führt sowohl zu Fehlertönen als auch zu merkwürdigem Verhalten.Tastenanschläge im Dialogfeld unterdrücken
Installation der Haken:
hKeyHook=SetWindowsHookEx(WH_KEYBOARD, KeyHookProc, hInst, GetCurrentThreadId());
Die Hook-Funktion:
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);
}
Lösen der Haken:
UnhookWindowsHookEx(hKeyHook);
Gibt es eine Möglichkeit, die Tastendruck, um zu verhindern gesendet werden das Steuerelement, das den Fokus im Dialogfeld hat?
In diesem Fall ist es eigentlich mein Thread, aber ich stimme zu, es ist nicht klar aus der Frage. –