当将鼠标置于对话框程序中的EDIT(或COMBO, LIST)控件上,如果按下Enter键,程序会跳出,如何屏蔽掉回车?

解决方案 »

  1.   

    映射IDOK;
    CXXDlg::OnOK()
    {
    ..
    //CDialog::OnOK();
    }
      

  2.   

    BOOL CMyDlg::PreTranslateMessage(MSG* pMsg) 
    {
    if(pMsg->message==0x100 && pMsg->wParam==13)//屏住ENTER
    {
    return TRUE;
    }
    return CDialog::PreTranslateMessage(pMsg);
    }
      

  3.   

    不错,上面两种方法都可以达到目的,不过最好是用第一种,
    这才是体现出面向对象的方法,是MFC程序员所要求的。
      

  4.   

    映射IDOK;
    CXXDlg::OnOK()
    {
    ..
    //CDialog::OnOK();
    }up
      

  5.   

    把回车键转换为TAB键,还不影响回车触发按钮事件,彻底解决。BOOL CRestore::PreTranslateMessage(MSG* pMsg) 
    {
    // TODO: Add your specialized code here and/or call the base class
    if(pMsg->message == WM_KEYDOWN )
    {
    CWnd * pWnd = CWnd::GetFocus(); 
    switch (pMsg->wParam)
    {  
    case VK_RETURN:
    if(!pWnd->IsKindOf(RUNTIME_CLASS(CButton)))
    pMsg->wParam = VK_TAB;
    else
    {
    pWnd->PostMessage(WM_LBUTTONDOWN,WM_COMMAND,0);
    pWnd->PostMessage(WM_LBUTTONUP,WM_COMMAND,0);
    return TRUE;
    }
    break; }
    }
    return CDialog::PreTranslateMessage(pMsg);
    }