设计对话框时,怎样做 按ESC键不能关掉对话框,因为系统默认按ESC键关闭对话框,要屏蔽掉这个按键如何写代码.我试了在OnChar()中按ESC键空操作也不行.

解决方案 »

  1.   

    重载OnCancel函数
    .h中加入
    virtual void OnCancel();.cpp中加入
    void CMyDialog::OnCancel ()
    {
    return;
    }
      

  2.   

    过载OnCancel函数void CMyDialog::OnCancel() 
    {}
      

  3.   

    在编辑对话框的时候去掉system menu。不过这样右上角的close也没了。
      

  4.   

    BOOL CMyDialog::PreTranslateMessage(MSG* pMsg) 
    {
    // TODO: Add your specialized code here and/or call the base class
    if((pMsg->message == WM_KEYDOWN)&&(pMsg->wParam == VK_ESCAPE))// ESC被按下
    return true;

    return CDialog::PreTranslateMessage(pMsg);
    }
      

  5.   

    BOOL CYourDlg::PreTranslateMessage(MSG* pMsg) 
    {
    if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_ESCAPE)
    {
    DispatchMessage(pMsg);
    return TRUE;
    }
    }
      

  6.   

    最合理的做法是 abc_rain 说的那样。