我做了一个对话框程序,在上面放了几个EDIT控件和几个BUTTON控件。在程序运行过程中,不管聚焦在哪个控件,我只要一按回车,程序就退出了,不知这是为什么?怎么能让我按回车时,程序不退出,而是象鼠标点击了某个按钮一样呢?谢谢。

解决方案 »

  1.   

    重载 PreTranslateMessage(MSG* pMsg) 
    BOOL DemoDlg::PreTranslateMessage(MSG* pMsg) 
    {
      if(pMsg->message == WM_KEYDOWN)
        {
            switch(pMsg->wParam)
            {
            case VK_RETURN://屏蔽回车
                return TRUE;
            case VK_ESCAPE://屏蔽Esc
                return TRUE;
            }
        }
    return CDialog::PreTranslateMessage(pMsg);
    }
    这样回车就不会退出了!
      

  2.   

    在你的对话框中的"OK"按钮中的属性中的"style"中有一个"default button",不要选择它,就可以了。
      

  3.   

    重载 PreTranslateMessage(MSG* pMsg) 
    BOOL DemoDlg::PreTranslateMessage(MSG* pMsg) 
    {
      if(pMsg->message == WM_KEYDOWN)
        {
            switch(pMsg->wParam)
            {
            case VK_RETURN://屏蔽回车
                return TRUE;
            case VK_ESCAPE://屏蔽Esc
                return TRUE;
            }
        }
    return CDialog::PreTranslateMessage(pMsg);
    }
      

  4.   

    去掉DIALOG中的WANT RETURN 属性
      

  5.   

    用消息MAPPING去重新定义按钮的处理函数就可以了。