简单,因为对话框有IDOK的响应消息OnOK(),把它去掉就可以了你可以试一试按ESC,程序应该也会退出的

解决方案 »

  1.   

    对话框有DEFAULT按钮,一般是OK
      

  2.   

    去掉OnOK不好,按OK岂不是没有反应了?最好的方法:在资源编辑器中,将OK按钮的属性"Default Button"去掉,不用改源码
      

  3.   

    处理PreTranslateMessage
    BOOL CComSetupEdit::PreTranslateMessage(MSG* pMsg) 
    {
    BOOL bHandledMsg = FALSE; switch (pMsg->message)
    {                      
    case WM_KEYDOWN:
    {
    switch (pMsg->wParam)
    {
    // hitting escape while searching for password edits
    // should only stop the search for password edits and 
    // not kill app 
    case VK_ESCAPE://ESC键
    bHandledMsg = TRUE;
    break;
    case 13://回车
    bHandledMsg = TRUE;
    break;
    default: break;
    } // switch (pMsg->wParam)
    }
    break;

    default: break;
    } // switch (pMsg->message)                   return (bHandledMsg ? TRUE : CDialog::PreTranslateMessage(pMsg));
    }
      

  4.   

    最简单的就是重载OnOk(),将CDialog::OnOk()去掉就可以了。如果需要在OnOk()的时候要处理什么,尽管处理好了。
      

  5.   

    bob_yan(小保) 说的对,
    重载ONOK函数,但是在函数中什么都不做,或者只做你的事情!
      

  6.   

    默认按钮的意思就是 自动响应dialog 的enter , 作为自己的click事件,
    而 缺省的 IDOK 就是 默认按钮属性, 去掉IDOK的默认按钮, 自己建一个button, 设为默认按钮, visible , or disable 随你高兴
      

  7.   

    还是neomeng(大胖)的方法管用,其它方法都不能屏蔽掉Esc。