永远也不完美的程序

不断学习,不断实践,不断的重构……

常用链接

统计

积分与排名

好友链接

最新评论

屏蔽alt+其他按键产生响声的解决方法。

        在windows中,随便打开一个窗口,然后按alt + 1之类的都会产生“冬”的一声,这是windows的默认响声。在游戏中,有时逻辑要实现一些快捷键要用到alt+其他键的组合。这样就会产生默认响声。下面说一下如何屏蔽这种声音。
        在网上基本上找不到相关的资料。我试过直接在消息循环不处理这方面的响应,但是还是听到这样的声音,后来用钩子程序处理,就解决这个问题了。下面是相关代码:
这个是键盘钩子函数:
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的默认响声。

posted on 2011-09-06 15:17 狂烂球 阅读(4627) 评论(0)  编辑 收藏 引用 所属分类: Windows编程


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理