【译文】雷蒙德-陈:经典 Win32 ListView 如何处理增量搜索?
内容提要
Win32 ListView支持两种搜索模式:一种是根据首字母搜索,一种是根据前缀搜索。如果重复输入相同字母,则选择以该字母开头的下一个项目;如果输入不同字母,则选择以该前缀开头的第一个项目。
延伸解读
两种搜索模式的差异
文章指出,增量搜索有两种常见模式:首字母搜索和前缀搜索。首字母搜索中,重复按同一字母会循环选择以该字母开头的项目;前缀搜索中,输入不同字母会逐步缩小范围,选择匹配前缀的第一个项目。这两种模式对应不同的用户预期,Win32 ListView 需要兼顾。
Win32 ListView 的智能切换机制
经典 Win32 ListView 通过判断用户输入的是否为重复字母来切换模式。如果连续输入相同字母,则进入首字母搜索模式,每次重复选择下一个以该字母开头的项目;如果输入不同字母,则进入前缀搜索模式,选择以当前输入前缀开头的第一个项目。这种设计无需用户手动切换,自动适应两种操作习惯。
实际行为示例
以包含 Cougar、Leopard、Lemur、Lion、Llama、Tiger 的列表为例:输入 L 选择 Leopard;再按 L 选择 Lemur;然后输入 A,由于字母不同,切换到前缀模式,选择以 LLA 开头的 Llama。这个例子清晰展示了模式切换的触发条件和结果。
Q&A
Win32 ListView支持哪两种搜索模式?
Win32 ListView支持首字母搜索和前缀搜索两种模式。
在首字母搜索模式中,如何选择项目?
在首字母搜索模式中,输入相同字母会选择下一个以该字母开头的项目。
前缀搜索模式是如何工作的?
在前缀搜索模式中,输入不同字母会选择以该前缀开头的第一个项目。
如何在Win32 ListView中切换搜索模式?
如果输入相同字母,ListView会保持在首字母模式;输入不同字母则切换到前缀模式。
能否给出一个使用Win32 ListView的搜索示例?
例如,输入'L'选择'Leopard',输入重复的'L'选择'Lemur',输入'A'选择'Llama'。
为什么Win32 ListView不能同时使用两种搜索模式?
Win32 ListView根据输入的字母判断使用哪种模式,无法同时兼容两者。