在windows中,隨便打開一個窗口,然后按alt + 1之類的都會產(chǎn)生“冬”的一聲,這是windows的默認(rèn)響聲。在游戲中,有時邏輯要實現(xiàn)一些快捷鍵要用到alt+其他鍵的組合。這樣就會產(chǎn)生默認(rèn)響聲。下面說一下如何屏蔽這種聲音。
在網(wǎng)上基本上找不到相關(guān)的資料。我試過直接在消息循環(huán)不處理這方面的響應(yīng),但是還是聽到這樣的聲音,后來用鉤子程序處理,就解決這個問題了。下面是相關(guān)代碼:
這個是鍵盤鉤子函數(shù):
LRESULT CALLBACK KeyboardHookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode == HC_ACTION)
{
switch (wParam)
{
case '1':
case '2':
case '3':
……
{
if (GetKeyState(VK_MENU) & 0x8000)
{
//處理這些按鍵事件。
return 1; //這里一定要return 1,否則會被程序消息處理到。
}
}
}
}
return ::CallNextHookEx(g_hKeyboardHook, nCode, wParam, lParam);
}
這樣就可以完全屏蔽了windows的默認(rèn)響聲。