MFC 如何判断用户键盘按的哪个键???

BOOLCtabTongBu::PreTranslateMessage(MSG*pMsg){//TODO:Addyourspecializedcodehereand/or... BOOL CtabTongBu::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if (pMsg->message==WM_KEYDOWN)
{
switch(pMsg->wParam)
{
case VK_DELETE:
MessageBox("您按下了DELETE");
break;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
这是我按照网上写的,判断用户按DELETE跳出对话框 ,但是我运行程序按DELETE没反应啊 ?还需要在哪里添加怎样的代码?或者我哪里错了,其实我不太理解这个函数,比如我在对话框中点击一个按钮以后,等待用户按键,用户按完,判断用户按的什么键,应该怎么实现 ,求各位帮忙啊 !我就这么多分了!
展开
 我来答
fso0qpty52
2012-11-16 · TA获得超过346个赞
知道小有建树答主
回答量:267
采纳率:0%
帮助的人:259万
展开全部
你的想法必须用全局钩子实现,其他无解!!
其次对于有软件保护的程序,你必须先要攻破它的保护层再截取按键消息。
追问
hook么?蛋疼啊 .....
追答
恩,而且要HOOK的是WH_GETMESSAGE,而不是WH_KEYBOARD
匿名用户
2012-11-16
展开全部
BOOL CDeleteBox::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if(pMsg->message==WM_KEYDOWN)
{
if(pMsg->wParam==VK_DELETE)
MessageBox("按下了delete键")
}
return CDialogEx::PreTranslateMessage(pMsg);
}
追问
你把switch 换成IF判断有什么意义?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
loboho
2012-11-16 · TA获得超过506个赞
知道小有建树答主
回答量:441
采纳率:100%
帮助的人:412万
展开全部
按键时你的输入焦点是否在这个类对应的窗口上?如果在Edit控件上是收不到的
追问
我是想实现运行程序,无论焦点在哪里 在任何窗口 ,我的程序都处于等待用户按键的状态 ,一旦用户按键,则做出响应 例如弹出此按键的提示对话框.....
追答
任何窗口包括不是本程序的窗口?这样的话用消息机制是做不到的。
如果只限本程序的窗口,在CWinApp::PreTranslateMessage拦截这个消息
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ymj4645
2012-11-16 · TA获得超过3494个赞
知道小有建树答主
回答量:580
采纳率:37%
帮助的人:250万
展开全部
代码应该是没什么问题,你下个断点跟踪看看!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式