IAutoComplete 接口 (shldisp.h)

由自动完成对象 (CLSID_AutoComplete) 公开。 此接口允许应用程序初始化、启用和禁用 对象。

继承

IAutoComplete 接口继承自 IUnknown 接口。 IAutoComplete 还具有以下类型的成员:

方法

IAutoComplete 接口具有这些方法。

 
IAutoComplete::Enable

启用或禁用自动完成。
IAutoComplete::Init

初始化自动完成对象。

注解

自动完成将编辑 控件 中部分输入的字符串扩展为完整的字符串。 例如,当用户开始在 Windows Internet Explorer 工具栏中嵌入的“地址”编辑控件中键入 URL 时,自动完成会将字符串扩展到一个或多个与现有部分字符串一致的完整 URL。 部分 URL 字符串(如“mic”)可能会扩展为“http://www.microsoft.com"或“http://www.microsoft.com/windows"。 自动完成通常与编辑控件或具有嵌入式编辑控件(如 comboboxex 控件)的控件一起使用。

自动完成有两种模式用于显示已完成的字符串。 这些模式是独立的,因此可以启用两者之一或两者。 若要指定模式,请调用 IAutoComplete2::SetOptions。 模式如下所示:

  • 自动填充 模式下,自动完成会将最可能的候选字符串的其余部分追加到现有字符,并突出显示追加的字符。 编辑控件的行为就像用户手动输入了整个字符串,然后突出显示了追加的字符。 如果用户继续输入字符,则会将其添加到现有的分部字符串中。 如果用户添加的字符与下一个突出显示的字符相同,则会关闭该字符的突出显示。 其余字符仍将突出显示。 如果用户添加的字符与下一个突出显示的字符不匹配,则自动完成将尝试基于较大的分部字符串生成新的候选字符串。 它将新候选字符串的其余部分追加到当前分部字符串,如前所述。 如果找不到候选字符串,则仅显示键入的字符,并且编辑框的行为与不自动完成一样。 此过程一直持续到用户接受字符串。
  • 自动建议 模式下,自动完成会在编辑控件下方显示一个下拉列表,其中包含一个或多个建议的完整字符串。 用户可以选择其中一个建议的字符串,通常通过单击它,或继续键入。 随着键入的进行,可能会根据当前部分字符串修改下拉列表。 如果在 IAutoComplete2::SetOptionsdwFlag 参数中设置ACO_SEARCH标志,则会将“搜索'XXX'”项添加到下拉列表底部。 即使没有建议的字符串,也会显示它。 “XXX”设置为当前部分字符串,并随着用户继续键入而更新。 如果用户选择“搜索'...'”,则应用程序应启动搜索引擎来协助用户。
实现自动完成的最简单方法是调用 SHAutoComplete。 为系统编辑控件调用此函数时,该控件将自动完成部分输入的文件系统路径或 URL。 若要为其他类型的字符串启用自动完成,或者要更好地控制自动完成的工作方式,可以直接使用基础自动完成对象。

此接口通常不由应用程序实现。 它由 Shell 的自动完成对象公开,并由应用程序使用。

使用自动完成对象的 IAutoComplete 接口初始化对象并启用或禁用自动完成。

若要使用自动完成对象实现编辑控件的自动完成,请执行以下操作:

  1. (COM) 导出 IEnumString 接口的 对象实现字符串列表组件对象模型。 此字符串列表对象负责提供自动完成对象将用作已完成字符串候选项的字符串列表。
  2. 使用 CoCreateInstance 创建自动完成对象的实例。 请求指向其 IAutoComplete 接口的 指针。
  3. 调用 IAutoComplete::Init。 将 hwndEdit 参数设置为编辑控件的窗口句柄。 如果编辑控件嵌入到另一个控件中,则必须检索编辑控件本身的句柄。 例如,若要检索嵌入在 comboboxex 控件中的编辑控件的句柄,请发送 CBEM_GETEDITCONTROL 消息。 将 IAutoComplete::InitpunkACL 参数设置为字符串列表对象的 IUnknown 指针。
  4. 如果不想使用默认选项,请检索指向自动完成对象的 IAutoComplete2 接口的指针。 调用 IAutoComplete2::SetOptions 以设置所需的选项。
  5. 自动完成对象使用字符串列表对象的 IUnknown 指针(在步骤 3 中作为 punkACL 传递)来检索指向该对象的 IEnumString 接口的指针。 然后,自动完成对象调用该接口以生成其候选字符串列表。 它从该列表中选择与控件中的分部字符串可接受匹配的字符串。 在 autoappend 模式下,完成字符串所需的字符将追加到部分字符串并突出显示。 在自动建议模式下,编辑控件下方会显示一个包含一个或多个可能字符串列表的下拉框。
  6. 如果用户接受自动完成的字符串,则编辑控件的行为就像是手动输入字符串一样。
默认情况下启用自动完成。 应用程序只需调用 IAutoComplete::Enable 即可禁用自动完成或重新启用它(如果已禁用)。

要求

要求
最低受支持的客户端 Windows 2000 专业版、Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 shldisp.h

另请参阅

IACList

IACList2

IAutoComplete2

ICurrentWorkingDirectory

IObjMgr