如何在MFC中处理按键?

时间:2010-12-04 07:17:58

标签: events mfc keyboard

我想截取显示我的某个对话框时按下的键

2 个答案:

答案 0 :(得分:4)

设置一些加速器,发送相关的WM_COMMAND或响应WM_KEYDOWN / UP消息,并留意你的按键。

更多信息:

http://www.codeproject.com/KB/dialog/pretransdialog01.aspx

该文章的有用代码:

BOOL CPreTransTestDlg::PreTranslateMessage(MSG* pMsg) 
{
    if(pMsg->message==WM_KEYDOWN)
    {
        if(pMsg->wParam==VK_RETURN)
            pMsg->wParam=VK_TAB;
    }   
    return CDialog::PreTranslateMessage(pMsg);
}

答案 1 :(得分:1)

您应该查看hooking keyboard events.这是一个CodeGuru链接,但当您使用Google How to hook keyboard events with MFC.

时,有许多资源可用

你会在这些文章中找到的是键盘和/或事件挂钩是选择的术语。 “拦截”被用来描述这个过程。还有一点需要注意:小心你要挂钩!您可以挂钩对话框或其他几个级别。 (顺便说一句,关键记录器是采用这种策略的着名木马。只是一个FYI。)