CComboBox::SelectStringint SelectString( int nStartAfter, LPCTSTR lpszString );返回值:
找到相应的字符串时,返回它的下标。没有找到时,返回CB_ERR,并且当前的选择不变。参数: nStartAfter 指定了查找开始的下标。当查到列表的结尾处时,又继续找到它标志的位置。如果设为-1,则从列表的开始处开始查找匹配的串。  
lpszString 指向一个以null结尾的字符串,该字符串就是待查找的匹配前缀。查找过程是不区分大小写的。  说明:
查找组合框的列表中匹配指定前缀的第一个字符串,如果找到则把它选为当前项,并把它拷贝到编辑控件中。
注意,成员函数SelectString和FindString都是查找字符串,但是SelectString同时也把找到的字符串作为当前选中的项。红色这里说没有找到时当前选择不变,为什么我却不是这样?我在组合框里输入内容,然后调用selectString,结果没有找到的时候,输入的内容被清空了!!

解决方案 »

  1.   

    The zero-based index of the selected item if the string was found. If the search was unsuccessful, the return value is CB_ERR and the current selection is not changed.
    没找到返回的不是CB_ERR,而是开始找的那个下标
    查找失败返回的才是CB_ERR。
      

  2.   

    SelectString:在组合框的列表中查找字符串,找到后选中它,并把它复制到编辑控件中
    FindString:在组合框的列表中查找具有指定前缀的第一个字符串你可以先用if 语句判断这个字符串是否已经存在,再进行调用
    如:
    组合框的参数变量设为:m_combobox 
      
    if(CB_ERR==m_combobox.FindString(-1,(LPCTSTR)szname))
    {
       ......
    }
      

  3.   

    解决了,完美让组合框自动匹配用户的输入
    http://hi.baidu.com/ypxmaomao/blog/item/84c97bf75a77d12a730eec7d.html