我想截取显示我的某个对话框时按下的键
答案 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。)