如何截获键盘上某些键,如:当按小键盘的'+'时弹出一个对话框. 如何截获键盘上某些键,如:当按小键盘的'+'时弹出一个对话框. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 debug时到跟一下啊,看键值是多少,再到头文件去找 重载PreTranslateMessage函数,加入对WM_KEYDOWN消息的处理。 同意studentforever的说法.是在不行可以用钩子呀! 做一个全局键盘HOOK不就行了么,再查一下"+"的虚拟码,发现是“+”时就... WM_CHARpls. refer to 《Programming Windows》 BOOL CKeyDowDlg::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class switch (pMsg->message) { case WM_KEYDOWN: switch (pMsg->wParam) { case VK_RIGHT : AfxMessageBox( "right" ) ; break ; case VK_RETURN: AfxMessageBox( "enter" ) ; break ; case VK_LEFT: AfxMessageBox( "left" ) ; break ; case VK_DOWN: AfxMessageBox( "down" ) ; break ; case VK_UP: AfxMessageBox( "up" ) ; break; case VK_BACK: AfxMessageBox( "backspace" ) ; break ; case VK_HOME: AfxMessageBox( "home" ) ; break ; case VK_END: AfxMessageBox( "end" ) ; break ; case VK_INSERT: AfxMessageBox( "insert" ) ; break ; case VK_DELETE: AfxMessageBox( "delete" ) ; break ; case VK_SCROLL: AfxMessageBox( "scrool" ) ; break; case VK_PRINT: AfxMessageBox( "printf screen" ) ; break; case VK_PAUSE: AfxMessageBox( "pause" ) ; break; case VK_F1: AfxMessageBox( "f1" ) ; break; } case WM_KEYUP: break; case WM_CHAR: switch( pMsg->wParam ) { case 65: AfxMessageBox( "A" ) ; break; } default: break; } return CDialog::PreTranslateMessage(pMsg);} 如何vc编程实现查看当前设备的运行状态,并对其进行控制 菜鸟请教 终于升星了.散分. ADO访问Access数据库,插入数据和更新数据出错 如何动态创建控件问题,请指教 [询问] 如何添加背景图 有哪位哥们做过CAPI(加密API)的东西?跟我说说怎么做个简单的例子 关于COM对象接口规则的疑惑 如何判断自己写的exe是以一个服务在运行还是以普通exe在运行 ???????????????怎样让鼠标在CListCtrl上移动时,经过的图标产生浮起的效果? 对话框显示图片 vc打印预览问题
pls. refer to 《Programming Windows》
{
// TODO: Add your specialized code here and/or call the base class
switch (pMsg->message)
{
case WM_KEYDOWN:
switch (pMsg->wParam)
{
case VK_RIGHT :
AfxMessageBox( "right" ) ;
break ;
case VK_RETURN:
AfxMessageBox( "enter" ) ;
break ;
case VK_LEFT:
AfxMessageBox( "left" ) ;
break ;
case VK_DOWN:
AfxMessageBox( "down" ) ;
break ;
case VK_UP:
AfxMessageBox( "up" ) ;
break;
case VK_BACK:
AfxMessageBox( "backspace" ) ;
break ;
case VK_HOME:
AfxMessageBox( "home" ) ;
break ;
case VK_END:
AfxMessageBox( "end" ) ;
break ;
case VK_INSERT:
AfxMessageBox( "insert" ) ;
break ;
case VK_DELETE:
AfxMessageBox( "delete" ) ;
break ;
case VK_SCROLL:
AfxMessageBox( "scrool" ) ;
break;
case VK_PRINT:
AfxMessageBox( "printf screen" ) ;
break;
case VK_PAUSE:
AfxMessageBox( "pause" ) ;
break;
case VK_F1:
AfxMessageBox( "f1" ) ;
break;
}
case WM_KEYUP:
break;
case WM_CHAR:
switch( pMsg->wParam )
{
case 65:
AfxMessageBox( "A" ) ;
break;
}
default:
break;
}
return CDialog::PreTranslateMessage(pMsg);
}