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

Com IEnumString搜索子字符串-可能吗?,com,mfc,Com,Mfc,我已经实现了对组合框的自动完成,如本文所示。有没有可能让它搜索子字符串而不仅仅是单词的开头 我还没有找到任何自定义IEnumString/IAutoComplete如何比较字符串的方法。有可能吗?检索编辑控件的iautomplete界面后,查询该界面是否存在错误。调用其成员可以通过指定ACO\u NOPREFIXFILTERING禁用前缀筛选 这在Windows Vista和更高版本上可用。如果您需要一个适用于Vista之前版本的解决方案,那么您必须这样做。内置的搜索选项会有所帮助,但它完全是

我已经实现了对组合框的自动完成,如本文所示。有没有可能让它搜索子字符串而不仅仅是单词的开头


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

检索编辑控件的
iautomplete
界面后,查询该界面是否存在错误。调用其成员可以通过指定
ACO\u NOPREFIXFILTERING
禁用前缀筛选


这在Windows Vista和更高版本上可用。如果您需要一个适用于Vista之前版本的解决方案,那么您必须这样做。

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

是否“禁用前缀过滤”是一种奇怪的说法“在字符串中的任何位置查找此文本”?因此,如果搜索“es”而不是“toast”,它会找到“test”?我从未尝试过这个选项,因为当它说“始终显示所有建议”时,我认为它会显示比我想要的更多的内容。我测试了它,但它不起作用!正如文档所说:“始终显示所有建议。”因此,现在它根本不使用输入文本进行过滤。麦肯:恐怕我误解了你的问题。我一有时间就修改答案。谢谢,期待着,因为我找不到让它搜索子字符串的方法:)