我想在一个CComboBox里面输入文本,然后按回车键调用一个小函数,大概就象IE里的地址栏一样,输入地址,回车,显示网叶。是不是要判断输入的字符是否是回车键,还是怎样?请高手赐教,最好给出一段代码!谢谢……

解决方案 »

  1.   

    重载函数PreTranslateMessage
    BOOL CTabctrlDlg::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)
        {
           //Do something
           return TRUE;
        }

      }
    return CDialog::PreTranslateMessage(pMsg);
    }
      

  2.   

    如果是对话框应用程序
    void CYourDlg::OnOK() 
    {
    if(GetFocus()->GetParent() == GetDlgItem(IDC_COMBO1))
    {
    AfxMessageBox("回车");
    }
    else
    {
    CDialog::OnOK();
    }
    }
      

  3.   


    BOOL CTabctrlDlg::PreTranslateMessage(MSG* pMsg) 
    {
     if(GetFocus()==GetDlgItem(IDC_COMBOX1))//判断光标在不在combox里
      if(pMsg -> message == WM_KEYDOWN)//处理键盘消息
      {
        if(pMsg -> wParam == VK_RETURN)
        {
           //此处执行你的程序
           return TRUE;
        }

      }
    return CDialog::PreTranslateMessage(pMsg);
    }
      

  4.   

    我再改一改,呵呵。
    BOOL CTabctrlDlg::PreTranslateMessage(MSG* pMsg) 
    {
      if(pMsg -> message == WM_KEYDOWN)//处理键盘消息
      {
        if(pMsg -> wParam == VK_RETURN)
        {
           if(GetFocus().GetParent()==GetDlgItem(IDC_COMBO1))//判断光标在不在combox里
           {
              //此处执行你的程序
              return TRUE;
           }
        }

      }
      return CDialog::PreTranslateMessage(pMsg);
    }
      

  5.   

    VK_RETURN=13,我以前用的时候,好像VK_RETURN系统不认
      

  6.   

    好象有一个专门的处理函数,你在clswizard中找找,是当选择了combobox中一个item之后按回车就激发的消息处理.