我现在需要对键盘事件做出处理,但是只要一按回车键,程序就直接退出 了,还有就是加了WM_KEYDOWN消息,但就是程序没有任何响应。这是为什么?   谢谢大家

解决方案 »

  1.   

    在视图类里面加入 wm_keydown消息响应就可以不要在 CMainFrame里面加
      

  2.   

    我想你应该是在Dialog中处理键盘事件。
    1:那么首先你按Enter键,Dialog退出,那是因为程序执行了OnOk函数,该函数会退出你的Dialog,所以你需要重载OnOk函数,将其中的CDialog::OnOK();删除掉就不会退出了。
    2:响应键盘事件:给Dialog添加WM_KEYDOWN处理事件函数,从中判断你要的键码来处理就可以了
      

  3.   

    BruceJiang() 说的对,我是要处理对话框中的键盘事件,但我用的是WM_KEYDOWN消息,它就是没有反应,不知道为什么?
      

  4.   

    要用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);
    }
      

  5.   

    要是处理  alt  shift  ctrl  等系统按键 要用到WM_SYSKEYDOWN
      

  6.   

    把dialog中ok按钮的属性中的default button属性取消掉,回车时就不会退出了~~~