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_URLALL。 SHACF_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 訊息。
應用程式必須先叫用 CoInitialize 或 OleInitialize ,才能呼叫此函式。 在編輯方塊完成處理 hwndEdit的WM_DESTROY訊息之前,無法呼叫 CoUninitialize 或 OleUninitialize。
自動建議下拉式清單框中可顯示的項目數目上限為 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 版或更新版本) |