1、在对话框中有一组CEditBox和CComboBox,如何实现当敲回车键时,焦点移至下一个CEditbox或CComboBox?2、在对话框中有一个CEditBox和一个CGridCtrl,如何实现当用户在CEditBox中输入查询条件后敲下回车键,程序自动根据输入的查询条件刷新CGridCtrl的内容?

解决方案 »

  1.   

    BOOL CMydilog::PreTranslateMessage(MSG* pMsg) 
    {
    // TODO: Add your specialized code here and/or call the base class
    CWnd *pwnd1,*pwnd2;
             pwnd1=GetDlgItem(IDC_YOUREDITBOX1);//第一个editbox
             pwnd2=GetDlgItem(IDC_YOUREDITBOX2);//第二个editbox...依次类推        if(GetFocus()==pwnd1) //如果此时焦点在第一个上面
    if (pMsg->message == WM_KEYDOWN)
    {
    if(pMsg->wParam==VK_RETURN)
                            pwnd2->SetFous();//切换到下一个上面..//依次类推
    } return CDialog::PreTranslateMessage(pMsg);
    }重写一次CGridCtrl,同时UpdateData(false);
      

  2.   

    重载对话框的OnOK
    CxxxDlg::OnOK()
    {
    NextDlgCtrl();
    }
      

  3.   

    BOOL CBSmartDlg::PreTranslateMessage(MSG* pMsg)
    {
        if(pMsg->message == WM_KEYDOWN)
        {
            switch(pMsg->wParam)
            {
            case VK_RETURN://回车              //做你想做的事情            return TRUE;
            }
        } return CDialog::PreTranslateMessage(pMsg);
    }