MFC Cedit 如何让它只响应回车的消息
我弄个了个EN_UPdate 发现所有的键盘敲打都来响应了我只要它响应回车
呵呵,vc 菜鸟求教
具体点哦

解决方案 »

  1.   

    WM_LBUTTONUP等消息,然后过滤等
      

  2.   


    BOOL CMyEdit::PreTranslateMessage(MSG* pMsg)
    {
    // TODO: 在此添加专用代码和/或调用基类
    if(pMsg->message == WM_KEYDOWN)
    {
    if(pMsg->wParam == VK_RETURN)
    {
    MessageBox(_T(""));
    }
    else
    {
    pMsg->wParam = 0;
    }
    }
    return CEdit::PreTranslateMessage(pMsg);
    }
      

  3.   

    楼上方法可行,但是截获有点损失太大。我的方法是增加一个全局BOOL m_bIsEnter变量,在BOOL C**Dlg::PreTranslateMessage(MSG* pMsg)
    {
        // TODO: 在此添加专用代码和/或调用基类
        if(pMsg->message == WM_KEYDOWN)
        {
            if(pMsg->wParam == VK_RETURN)
            {
                m_bIsEnter = TRUE;
            }
            else
            {
                m_bIsEnter = FALSE;
            }
        }    return C**Dlg::PreTranslateMessage(pMsg);
    }在你的OnUpdate里边开头加上if(!m_bIsEnter)
    {
         return;
    }
      

  4.   


    判断VK_RETURN 倒是拦截到了回车消息,不过非回车消息也被处理了,打不出字来啊,有违愿望啊:拦截回车,当非回车时让它正常打字
      

  5.   

    犯傻了,呵呵,谢谢,容易转不过来,我另起了一个控件类,捕抓后在DLG里不可见的原因
      

  6.   

    判断是VK_RETURN就直接return TRUE,不往下执行了