shAutoComplete 函数 (shlwapi.h)

指示系统编辑控件使用自动完成来帮助完成 URL 或文件系统路径。

语法

LWSTDAPI SHAutoComplete(
  [in] HWND  hwndEdit,
       DWORD dwFlags
);

参数

[in] hwndEdit

类型:HWND

系统编辑控件的窗口句柄。 通常,此参数是编辑控件或 ComboBoxEx 控件中嵌入的编辑控件的句柄。

dwFlags

类型:DWORD

用于控制 SHAutoComplete 操作的标志。 前四个标志用于替代 Internet Explorer 注册表设置。 用户可以通过从“工具”菜单启动“Internet 选项”属性表并单击“高级”选项卡来手动更改这些设置。

SHACF_AUTOAPPEND_FORCE_OFF (0x80000000)

忽略注册表默认值并强制关闭 AutoAppend 功能。 此标志必须与一个或多个 SHACF_FILESYS* 或 SHACF_URL* 标志结合使用。

SHACF_AUTOAPPEND_FORCE_ON (0x40000000)

忽略注册表值并强制启用 AutoAppend 功能。 完成的字符串将显示在编辑框中,并突出显示了添加的字符。 此标志必须与一个或多个 SHACF_FILESYS* 或 SHACF_URL* 标志结合使用。

SHACF_AUTOSUGGEST_FORCE_OFF (0x20000000)

忽略注册表默认值并强制关闭自动建议功能。 此标志必须与一个或多个 SHACF_FILESYS* 或 SHACF_URL* 标志结合使用。

SHACF_AUTOSUGGEST_FORCE_ON (0x10000000)

忽略注册表值并强制启用自动建议功能。 所选的可能已完成的字符串将显示为下拉列表,位于编辑框下方。 此标志必须与一个或多个 SHACF_FILESYS* 或 SHACF_URL* 标志结合使用。

SHACF_DEFAULT (0x00000000)

默认设置,等效于 SHACF_FILESYSTEM | SHACF_URLALLSHACF_DEFAULT 不能与任何其他标志组合使用。

SHACF_FILESYS_ONLY (0x00000010)

仅包括文件系统。

SHACF_FILESYS_DIRS (0x00000020)

包括文件系统和目录、UNC 服务器和 UNC 服务器共享。

SHACF_FILESYSTEM (0x00000001)

包括文件系统和 Shell (桌面、计算机和控制面板的其余部分,例如) 。

SHACF_URLALL (SHACF_URLHISTORY |SHACF_URLMRU)

在“用户 历史记录 ”和“ 最近使用” 列表中包括 URL。 等效于 SHACF_URLHISTORY | SHACF_URLMRU

SHACF_URLHISTORY (0x00000002)

在用户的 “历史记录 ”列表中包括 URL。

SHACF_URLMRU (0x00000004)

将 URL 包含在用户的 “最近使用” 列表中。

SHACF_USETAB (0x00000008)

允许用户按 TAB 键从自动建议列表中选择。 如果未设置此标志,按 Tab 键会将焦点转移到下一个控件并关闭自动建议列表。 如果设置了 SHACF_USETAB ,按 Tab 键将选择列表中的第一项。 再次按 Tab 将选择列表中的下一项,依此选择。 当用户到达列表的末尾时,下一次按 TAB 键会将焦点循环回到编辑控件。 此标志必须与此页上列出的一个或多个 SHACF_FILESYS* 或 SHACF_URL* 标志结合使用。

SHACF_VIRTUAL_NAMESPACE (0x00000040)

返回值

类型: HRESULT

如果此函数成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

SHAutoComplete 适用于任何系统编辑控件,包括编辑控件和包含编辑控件的控件,如 ComboBoxEx 控件。 若要检索嵌入在 ComboBoxEx 控件中的编辑控件的句柄,请向 ComboBoxEx 控件发送 CBEM_GETEDITCONTROL 消息。

在调用此函数之前,应用程序必须已调用 CoInitializeOleInitialize 。 在编辑框处理完 hwndEdit的WM_DESTROY消息之前,无法调用 CoUninitialize 或 OleUninitialize

自动建议下拉列表框中可显示的最大项数为 1000。

在 Windows Vista 之前的 Windows 版本和 Windows Server 2008 之前的服务器版本上,不应使用相同的 HWND 多次调用 SHAutoComplete。 这样做会导致内存泄漏。 它阻止释放原始资源,包括 AutoComplete 对象的上一个实例、上一个 AutoComplete 对象引用的枚举器对象,以及 Windows 图形设备接口 (GDI) 资源。 使用 CLSID_AutoComplete 调用 CoCreateInstance 以获取 AutoComplete 对象,而不是使用一组不同的标志再次调用 SHAutoComplete 以更改 AutoComplete 列表。 然后将 HWND 传递给 对象以对其进行初始化并提供你自己的自定义枚举器。 如果希望自动完成使用多个列表,可以使用 CLSID_ACLMulti。

要求

要求
最低受支持的客户端 Windows 2000 专业版、Windows XP [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 shlwapi.h
Library Shlwapi.lib
DLL Shlwapi.dll (5.0 或更高版本)

另请参阅

使用自动完成