在VC6中如何屏蔽“文本编辑框”的“回车键”???

解决方案 »

  1.   

    PreTranslateMessage中对WM_KEYDOWN的VK_ENTER进行屏蔽
      

  2.   

    CDialog::PreTranslateMessage(MSG* pMsg)
    {
      if(GetFocus()->GetDlgCtrlID() == IDC_EDIT1 ) //判断焦点是否在EDIT1上
       if( pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN )//判断是否按回车
                 return TRUE;直接返回
     
      return CDialog::PreTranslateMessage(pMsg);
    }
      

  3.   

    在消息循环PeekMessage或者GetMessage之后,判断是否调用DispatchMessage。MFC的消息循环有调用CWnd::PreTranslateMessage,所以楼上的方法可以,如果不用MFC的话需要自己修改消息循环的处理过程
      

  4.   

    楼上三位高人已经说了。
    也可以派生CEdit的子类进行处理。
      

  5.   

    BOOL CTest6Dlg::PreTranslateMessage(MSG* pMsg) 
    {
    if( pMsg->message == WM_KEYDOWN )

    if(pMsg->hwnd == GetDlgItem(IDC_EDIT1)->m_hWnd)
    {
    switch( pMsg->wParam )
    {
    case VK_RETURN:
    return TRUE;
    }
    }
    }
    return CDialog::PreTranslateMessage(pMsg);
    }
      

  6.   

    也可以通过处理KEY_UP和KEY_DOWN事件来进行处理
      

  7.   

    在VC6中如何屏蔽“文本编辑框”的“回车键”???
    --------------
    你不把want return选上就行了默认是没有选上
    你回车就把对话框关闭了
      

  8.   

    首先在控件的属性中去掉want return
    然后可以拦截消息
      

  9.   

    谢谢各位高手相助,问题解决了80%。还有一个小问题:Alt+F4怎么屏蔽?问题解决马上结帐。
      

  10.   

    两个办法,一是在F4按下时判断alt的状态。二是记录alt的keydown和keyup事件。