对话框中有一个发送按钮,一个编辑框,我想在编辑框输入完数据后直接按回车键就执行发送命令。
现在问题是我按回车键的时候就关闭对话框了,请问如何解决这个问题。

解决方案 »

  1.   

    BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg) 
    {

    if(pMsg->message==WM_KEYDOWN &&pMsg->wParam==VK_RETURN)
    {

    CWnd* wnd=FromHandle(pMsg->hwnd);//获取消息发送窗口
    char name[20];
    if(GetClassName(wnd->GetSafeHwnd(),name,sizeof(name))!=0)
    {
    DWORD style=::GetWindowLong(pMsg->hwnd,GWL_STYLE);
    if((style&ES_MULTILINE)==0)//不具有多行编辑属性
    {
    if(strnicmp(name,"edit",5)==0)//如果为编辑控件
    {
    //发送命令
    return true;
    }
    }
    }
    }

    return CDialog::PreTranslateMessage(pMsg);
    }
      

  2.   

    BOOL C*****::PreTranslateMessage(MSG* pMsg) 
    {
    // TODO: Add your specialized code here and/or call the base class
    if(pMsg->message == WM_KEYDOWN)   
    {   
    if(pMsg->wParam == VK_RETURN)   
    {
    return true;
    }
    }
       return CDialog::PreTranslateMessage(pMsg);
    }
      

  3.   

    // 设置要执行的按钮为default button
      

  4.   


    不好意思,可能我例子举的有点问题,如果设定了按钮为default button,鼠标指针移到编辑框的话,按回车是可以实现的。但我想知道的是打开对话框时,不去移到鼠标指针而直接按回车去执行某个按钮的操作用代码如何实现
      

  5.   


    那就Ctrl+D 给你的控件排序,你这个按钮排第一位即可