相信大家都知道有这么一个bug吧,不论什么时候按Enter对话框都会关闭,别的倒是没有什么问题,关键是我打算模仿个聊天程序,这个你按Enter就结束就不太好了!!!!!!!!!!!!!!
求正解.......................................

解决方案 »

  1.   

    这不是 Bug..你对话框 的 OnOK函数
    1void CtestDlg::OnBnClickedOk()
    {
    // TODO: 在此添加控件通知处理程序代码
    //OnOK();  //注释掉这句代码 ,就行了 
    }或者 吧默认焦点转移到一个 按了后不会关闭窗体的控件上
      

  2.   

    重载虚函数PreTranslateMessage()BOOL 类名::PreTranslateMessage(MSG* pMsg) 
    {
    // TODO: Add your specialized code here and/or call the base class
    if(VK_RETURN == pMsg->wParam) 
    return true;
    return CListCtrl::PreTranslateMessage(pMsg);
    }这样可以屏蔽键盘回车键的消息楼主你想要的是这样的效果吧?
      

  3.   

    我是想按Enter后不会关闭窗口,3楼说得不是,我是根本没有OnOk的,我把它删掉了
      

  4.   

    那你试一下我这种方法
    重载你对话框的虚函数PreTranslateMessag(),
    应该可以了。
      

  5.   

    重载 OnOK,然后直接返回就可以了,如果想关闭,调用 CDialog::OnOK();
      

  6.   


    只是删掉OnOk是不行的,必须重载OnOk,再注释OnOk,如下:
    void CtestOKButtonDlg::OnBnClickedOk()
    {
    // TODO: Add your control notification handler code here
    //OnOK();
    }
      

  7.   

    这不是bug啦,对话框和窗口不同,M$拦截了一些按键做了特殊处理(比如enter,esc等),
    重载PreTranslateMessage和onok都行啦,区别仅在于前者不发消息啦,后者是发了消息不响应.
      

  8.   

    上个世纪都解决的问题. baidu问吧.
      

  9.   

    必须从在onOk,在onOK里面不进行任何操作
      

  10.   

    必须重载onOk,在onOK里面不进行任何操作
      

  11.   

    原来是 ,重载ONOK(),把CDialog::OnOK();注释掉就可以了