我现在需要对键盘事件做出处理,但是只要一按回车键,程序就直接退出 了,还有就是加了WM_KEYDOWN消息,但就是程序没有任何响应。这是为什么?
谢谢大家
我想你应该是在Dialog中处理键盘事件。
1:那么首先你按Enter键,Dialog退出,那是因为程序执行了OnOk函数,该函数会退出你的Dialog,所以你需要重载OnOk函数,将其中的CDialog::OnOK();删除掉就不会退出了。
2:响应键盘事件:给Dialog添加WM_KEYDOWN处理事件函数,从中判断你要的键码来处理就可以了
要用BOOL xxx::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_RETURN://截获回车
return TRUE;
case VK_ESCAPE://截获ESC
//return TRUE;
break;
}
}
return CDialog::PreTranslateMessage(pMsg);
}