我一回车就退出了
ft

解决方案 »

  1.   

    很简单的,不过一下记不清楚了,在资源编辑中cedit有一个属性want return,看是不是。或不是编辑框引起的,而是对话框,退出时,输入焦点-在什么地方,cedit上吗?
      

  2.   

    override OnOK() and OnCancel(), 
    void CXXXDlg::OnOK() 
    {
         // TODO: Add extra validation here
         
    //     CDialog::OnOK();
    }
      

  3.   

    CaptainIII(山上人)说的对,就是这个want return
      

  4.   

    在可编辑多行时,需要选中Want Return属性;
    若是单行,需要重载OnOK()和ONCancel()。
      

  5.   

    want return, 去掉勾勾
      

  6.   

    楼上说的都很对,不过我补充一下:可以相应wm_char拦截enter件
      

  7.   

    我以前刚学的时候也是遇到这样的问题,身边又没有人会MFC,(更没有CSDN了)那时可是很郁闷啊。现在的学生可真幸福啊,呵呵,
        好了,不废话了,其实原因很简单:因为当你按下了回车时,WINDOWS查看当前输入焦点,如不在按钮上,再看哪个按钮是默认的(资源编辑器按钮中的default属性)。如果连默认按钮都没有,应用程序框架就把消息传给对话框的OnOK()虚函数。所以,只要你把这个函数重载一下,就可以了。基本上和那位MS MVP讲的差不多。
        具体方法如下:
    1。去掉OK按钮的默认属性。
    2。为OK按钮添加消息处理函数。OnOK()
    3。将OnOK中CDIalog::OnOK()去掉//如果你的对话框类直接继承自CDialog
    4。将OK按钮ID重命名一般改为IDC_OK
    5。为OK按钮重新添加消息处理函数。一般命名为OnClickedOK()这里是真正的处理按钮被按下的函数。
    这样就可以了
      

  8.   

    这个问题我开始的时候也碰到了,好象是和程序的键盘响应函数有关的
    这个是在类向导里面Message里面添加该函数的
    BOOL CServerDlg::PreTranslateMessage(MSG* pMsg) 
    {
    // TODO: Add your specialized code here and/or call the base class
    if(pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN){
    //在这里添加你要程序在接受到键盘消息后的动作
    return TRUE;
    } return CDialog::PreTranslateMessage(pMsg);
    }