EDIT如何接受回车?急急急!重写了那个接受回车的函数可是没反应
   

解决方案 »

  1.   

    重载PreTranslateMessage函数不行吗?
    实现不行就子类化EDIT吧。
      

  2.   

    PreTranslateMessag和子类化都可以实现
    可以看一下以前的帖子,有这样的问题,有源码的。
    如果没有找到,我帮你找。
      

  3.   

    下面是我子类化的一部分,处理EDIT回车,自动到一下个ID中,一般我会设为EDIT,这样就实现了输入时回车是自动跳到下一个EDIT控件的功能。
    供参考
    void CMyEdit::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)  
    {
    if (nChar==VK_RETURN)
    {
    CDialog *pWnd=(CDialog *)GetParent();
    pWnd->NextDlgCtrl ();

    CEdit::OnKeyDown(nChar, nRepCnt, nFlags);
    }PreTranslateMessag中处理,引用它人源码。来自本论坛
    BOOL CXXDlg::PreTranslateMessage(MSG* pMsg) 
    {
        // TODO: Add your specialized code here and/or call the base class
        if(WM_KEYDOWN == pMsg->message)
        {
            CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EDIT1);
            ASSERT(pEdit);
            if(pMsg->hwnd == pEdit->GetSafeHwnd() && VK_RETURN == pMsg->wParam)
            {
                AfxMessageBox(_T("OK"));
                return TRUE;
            }
        }
        return CDialog::PreTranslateMessage(pMsg);
    }
      

  4.   

    EDIT属性设置中勾上Want return