我想截取在我的对话框显示时按下的键。
要么设置一些加速器来发送相关的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);
}
你应该研究一下钩取键盘事件。那是一个CodeGuru的链接,但是当你谷歌搜索如何使用MFC钩取键盘事件时,会有很多很多的资源可用。
在这些文章中,你会发现键盘和/或事件挂钩是首选的术语。"拦截"很少用于描述这个过程。还有一个注意事项:要小心挂钩的位置!你可以挂钩到你的对话框或其他几个级别。(顺便说一句,键盘记录器是使用这种策略的众所周知的特洛伊木马。只是提供信息而已。)