我的ComboBox的样式是DropDown的,假设下拉列表中有一项"abc",当我手工输入"abc"后,用GetCurSel获得的结果却是CB_ERR。请问当我输入时,如果让ComboBox自动对应到下拉列表中的选项?

解决方案 »

  1.   

    //向组合框中列表框添加文本
    m_ctrlComboBox.AddString(_T("Monday"));
    m_ctrlComboBox.AddString(_T("Tuesday"));
    m_ctrlComboBox.AddString(_T("Wednesday"));
    m_ctrlComboBox.AddString(_T("Thurday"));
    m_ctrlComboBox.AddString(_T("Friday"));
    m_ctrlComboBox.AddString(_T("Saturday"));
    m_ctrlComboBox.AddString(_T("Sunday")); //设置组合框当前选择项
    m_ctrlComboBox.SetCurSel(0);//判断序号,再SetCurSel(n);
      

  2.   

    楼上没理解我的意思,如果我手工输入"Friday",我希望GetCurSel能返回给我4,而不是CB_ERR(未选择)
      

  3.   

    GetWindowText 获取输入字符串
    FindString 进行匹配
      

  4.   

    int index;
    CString text;
    // 获取 Edit 控件文本
    m_ComboBox.GetWindow(GW_CHILD).GetWindowText(text);
    // 查找文本完全符合项的索引
    index = m_ComboBox.FindStringExact(text.GetBuffer(MAX_PATH));
      

  5.   

    // 查找文本完全符合项的索引
    index = m_ComboBox.FindStringExact(-1, text.GetBuffer(MAX_PATH));
      

  6.   

    当你在输入时,可以捕捉Editchange,即你输入的内容。然后再用FindString()匹配就可以了
      

  7.   

    我在vc6下按f就直接定位到Friday了
    没给我输入的机会唉
      

  8.   

    获取你输入到com控件上的文字 然后匹配已有的下拉内容。
    如果匹配上了你就调用SetCurSel()就可以了