对话框的Edit控件(设置了多行属性),运行的时候,在Edit中输入一行后,回车,对话框关闭了。请问:怎么能实现在Edit中回车换行功能,而不是直接关闭对话框?

解决方案 »

  1.   

    派生CEdit类的OnKeyDown或重载对话框类推PreTranslateMessage拦截WM_KEYDOWN,判断其键值。
      

  2.   

    在对话框编辑器中Styles中将Want return勾上就搞定
      

  3.   

    重写OnOK,把Style加上Want Return
      

  4.   

    want return
    可以在消息循环里在把消息发送到编辑框之前就对消息进行拦截,并对其进行处理。其效果同编辑框响应回车键是一样的,仅在时序上有所提前而已。
       可以通过重载虚函数PreTranslateMessage()对所关心的消息进行解析: 
    BOOL CTestView::PreTranslateMessage(MSG* pMsg)  

    if (WM_KEYFIRST <= pMsg->message && pMsg->message <= WM_KEYLAST)  

    if(pMsg->wParam==VK_RETURN ) 

    UpdateData(TRUE); 
    AfxMessageBox(m_Text); 

     

    return CFormView::PreTranslateMessage(pMsg); 

      

  5.   

    用want return
    不起作用,我试了。
      

  6.   

    把ok按钮的default属性取消
      

  7.   

    是啊,选中Want Return也没用,还是要在PreTranslateMessage中拦截消息,大家试过没啊