一回车CDialog就关,烦!
设置什么可以解决呢?

解决方案 »

  1.   

    把OnOk()重载,去掉里面的代码
      

  2.   

    将OK按钮的default button风格去掉,即可
    void CRtyDlg::OnOK() 
    {
    // TODO: Add extra validation here
    注释以下代码
    //CDialog::OnOK();
    }
    void CRtyDlg::OnCancel() 
    {
    // TODO: Add extra cleanup here

    //CDialog::OnCancel();
    }
      

  3.   

    做完了上面的工作后,再重载OnClose(),在里面写是CDialog::OnOK(),
    或CDialog::OnCancel()。
    不这样写,你的对话框就关不了。
      

  4.   

    在PerTranslateMessage里得到按回车键的消息,直接返回也可以啊
    if(pMsg->message == WM_KEYDOWN && pMsg->lParam==13)
            return;
      

  5.   

    http://expert.csdn.net/Expert/topic/1848/1848446.xml?temp=.9331629
    Dialog默认情况下,按ESC与Enter键后退出,如何禁掉这种效果??
      

  6.   

    void CRtyDlg::OnOK() 
    {
    // TODO: Add extra validation here
    注释以下代码
    //CDialog::OnOK();
    }
    void CRtyDlg::OnCancel() 
    {
    // TODO: Add extra cleanup here

    //CDialog::OnCancel();
    }
      

  7.   

    将OK按钮的default button风格去掉,即可
    void CRtyDlg::OnOK() 
    {
    // TODO: Add extra validation here
    注释以下代码
    //CDialog::OnOK();
    }
    void CRtyDlg::OnCancel() 
    {
    // TODO: Add extra cleanup here

    //CDialog::OnCancel();
    }
      

  8.   

    BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg) 
    {
    // TODO: Add your specialized code here and/or call the base class
    if (pMsg->message == WM_KEYDOWN && (pMsg->wParam == VK_ESCAPE || pMsg->wParam == VK_RETURN))
    return TRUE;

    return CDialog::PreTranslateMessage(pMsg);
    }
      

  9.   

    OnOK()里面的代码还是不能去掉的,如果去掉了,当点击了OK按钮的时候,怎么办?
    还是去掉OK按钮的默认属性去掉吧,因为OK具有默认属性,当按Enter键时,就调用OnOK()了。
      

  10.   

    在PreTranslateMessage()里面写。
    如果时Esc,获Enter,直接返回,也可以。
      

  11.   

    最好是用PerTranslateMessage
    简单的办法是将其它任一个按钮设置为Default