IEnumString搜索子字符串 - 可能吗?

时间:2015-02-16 20:52:21

标签: com mfc

我已经像本文所示,对组合框执行了自动完成功能。是否有可能使其搜索子字符串而不仅仅是单词的开头?

http://www.codeproject.com/Articles/2371/IAutoComplete-and-custom-IEnumString-implementatio

我还没有找到任何方法来自定义IEnumString / IAutoComplete如何比较字符串。有可能吗?

2 个答案:

答案 0 :(得分:2)

内置搜索选项有点帮助,但它完全混乱。要查找instring匹配项,您需要设置标志AcoWordFilter。但这会阻止数字匹配!!但是,有一个技巧可以使数字匹配:使用双引号,如“3”查找包含或以“3”开头的字符串。更多混乱?在AcoWordFilter中你还需要为其他字符加前缀被认为是“单词”的一部分,例如,你需要在括号前加上“但是你不会在第一个位置找到括号! 所以解决方案是要么创建自己的IAutoComplete实现,要么让用户在模式之间切换(有点尴尬)。 我不认为MS工程师对这种混乱感到特别自豪。还有一个选择:AcoSearchAnwhere?

答案 1 :(得分:1)

检索编辑控件的IAutoComplete界面后,查询IAutoComplete2 interface。调用其SetOptions成员,您可以指定ACO_NOPREFIXFILTERING AUTOCOMPLETEOPTIONS来停用前缀过滤。

这适用于Windows Vista及更高版本。如果您需要适用于Vista之前版本的解决方案,则必须write your own