我在combo box已经显示了一些值,我怎么样能做到手动直接输入,和下拉选择结果一样呢?

解决方案 »

  1.   

    没有啊,我输入了以后,按enter,都没反应
    如果下拉,因为我选择了CBN_SELECHANGE事件,我在这个事件里,添加功能可以做
    如果直接输入,按enter,一点反应都没,我需要添加什么事件还是怎么样来实现和下拉一样的工作?
      

  2.   

    我详细说一下
    就是我用了一个combo box,里面不是列了信息,比如A,B,C么,我可以鼠标点击选择一个,我加了个CBN_SELECHANGE事件响应点击,比如一点击选择A就做功能X,
    但是如果我不选择,combo box不是空白入EDIT TEXT么,我如果不用鼠标点击选择A,而是手动在空白出输入A,我怎么样才能做功能X呢?
      

  3.   

    // 得到下拉列表值索引位置函数
    int CDynCrm::GetItemLstIndex(CComboBox *pComboBox,CString csValue)
    {
    int iLoop = 0;
    CString csLstText;
    CString csLstValue;
    for (iLoop=0;iLoop<pComboBox->GetCount();iLoop++)
    {
    pComboBox->GetLBText(iLoop,csLstText);
    csLstValue = csLstText.Mid(0,csLstText.Find(CmpProt_ListEmpty));
    if ((csLstText==csValue) || (csLstValue==csValue)) break;
    }
    return iLoop;
    }// 将以下语句置下拉列表OnKillFocus,且在其内判断输入了Enter键,
    // 这样就可达到你的要求了
    ///////////////////////////////////////////////////////////////////////////
    .......
    CComboBox *pComboBox; // 下拉列表框实例
    int iTemp = GetItemLstIndex(pComboBox,CString(cPValue));
    pComboBox->SetCurSel(iTemp); // 设置下拉列表值
    .......
    ///////////////////////////////////////////////////////////////////////////
      

  4.   

    上面仁兄很感谢,
    但其实不应该那么麻烦,我下拉可以用在CBN_SELECHANGE事件响应中直接获得,
    我现在需要的手动在combo box中输入信息以后,按enter怎么响应,我需要的是怎么样添加对enter的响应
      

  5.   

    CString temp;
    GetDlgItemText(combo box的ID,temp);temp就是你在下拉框中输入的内容罗
    如果是数字
    再atoi吧
    笨笨的方法,呵呵