SHAutoComplete 函式 (shlwapi.h)

指示系統編輯控制項使用 AutoComplete 來協助完成 URL 或文件系統路徑。

語法

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

參數

[in] hwndEdit

類型: HWND

系統編輯控制件的視窗句柄。 一般而言,此參數是內嵌在 ComboBoxEx 控件中的編輯控件或編輯控件的句柄。

dwFlags

類型: DWORD

用來控制 SHAutoComplete作業的旗標。 前四個旗標是用來覆寫 Internet Explorer 登錄設定。 使用者可以從 [工具] 功能表啟動 [因特網選項] 屬性表,然後按兩下 [進階] 索引標籤,手動變更這些設定。

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)

包括文件系統和殼層的其餘部分, (桌面、計算機和 控制台,例如) 。

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訊息之前,無法呼叫 CoUninitializeOleUninitialize

自動建議下拉式清單框中可顯示的項目數目上限為 1000。

在 Windows Server 2008 之前的 Windows 版本和 Windows Server 2008 之前的伺服器版本上,不應使用相同的 HWND 多次呼叫 SHAutoComplete。 這麼做會導致記憶體流失。 它可防止釋放原始資源,包括先前的 AutoComplete 對象的實例、先前的 AutoComplete 物件參考的列舉值物件,以及 Windows 圖形裝置介面 (GDI) 資源。 若要變更 AutoComplete 清單,請以CLSID_AutoComplete呼叫 CoCreateInstance 以取得 AutoComplete 物件,而不是使用不同的旗標來呼叫 SHAutoComplete。 然後將 HWND 傳遞給 物件來初始化它,並提供您自己的自定義列舉值。 如果您想要讓 AutoComplete 使用多個清單,可以使用CLSID_ACLMulti。

規格需求

需求
最低支援的用戶端 Windows 2000 Professional、Windows XP [僅限桌面應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 shlwapi.h
程式庫 Shlwapi.lib
Dll Shlwapi.dll (5.0 版或更新版本)

另請參閱

使用自動完成