制御できないダイアログ用のキーボードフックを追加しました(クローズドソースのライブラリで独自の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);
ダイアログでフォーカスがあるコントロールにキーストロークが送信されないようにする方法はありますか?