用VC写好的程序,运行出对话框以后,按ESC键就退出了
请教高手如何屏蔽ESC退出对话框.

解决方案 »

  1.   

    重载的PreTranslateMessage函数中屏蔽回车和ESC的消息:BOOL CxxxDlg::PreTranslateMessage(MSG* pMsg) 
    {
     if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_ESCAPE)  return TRUE;
     if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RETURN) return TRUE; 
     else 
        return CDialog::PreTranslateMessage(pMsg);
    }
      

  2.   

    BOOL CPCLinkDC2Dlg::PreTranslateMessage(MSG* pMsg) 
    {
    if(WM_KEYDOWN == pMsg->message)
    {
    if((13 == pMsg->wParam) || //enter
    (27 == pMsg->wParam)) //escape
    return FALSE;
    }
    return CDialog::PreTranslateMessage(pMsg);
    }
      

  3.   

    响应对话框的OnCancel()消息,然后将缺省的CDialog::OnCancel()注释掉就可以了
      

  4.   

    BOOL CSysDlg::PreTranslateMessage(MSG* pMsg) 
    { if (WM_KEYDOWN == pMsg->message)
    {
    if (VK_ESCAPE == pMsg->wParam)
    {// Esc 键
    return TRUE;
                       }
              }
    }