我试了捕获下列消息: WM_KEYDOWM/UP , WM_SYSKEYDOWN/UP, WM_SYSCHAR, 都没有用。
请大家指点,感觉应该不复杂吧,只是找不到地方

解决方案 »

  1.   

    用低级键盘钩子,什么都钩到了,但是这个是全局钩子,其他的窗口需要调用CallNextHookEx传递消息……否则其他窗口就惨了……
      

  2.   

    如果是对话框程序,把IDCANCEL按钮Disable掉就行了。
    http://community.csdn.net/Expert/topic/3193/3193501.xml?temp=.9187433
      

  3.   

    disable IDCANCEL不行的,还有不想用全局的钩子。
      

  4.   

    响应WM_CLOSE消息
    在调用CDialog::OnClose();前直接return
      

  5.   

    程序终会发出WM_CLOSE消息,在这里个外理就可以了
      

  6.   

    WM_KEYDOWM/UP , WM_SYSKEYDOWN/UP, WM_SYSCHAR 这些不行
    屏蔽掉OnCancel当然可以 但是要用到OnCancel呢?
    我的方法是使用加速键表
    定义一个IDM_TEST 对应的加速键是Alt+F4
    然后在资源管理器中编辑OnTest
    最后添加代码
    CxxxxDlg::OnTest
    {
    .......;
    }