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::SetOptions 的 dwFlag 參數中設定ACO_SEARCH旗標,則會將「搜尋 』XXX'」 專案新增至下拉式清單底部。 即使沒有建議的字串,也會顯示它。 “XXX” 設定為目前的部分字串,並在使用者繼續輸入時更新。 如果使用者選取 [搜尋 '...'],您的應用程式應該啟動搜尋引擎來協助使用者。
此介面通常不會由應用程式實作。 它會由Shell的自動完成物件公開,並由應用程式使用。
使用自動完成物件的 IAutoComplete 介面初始化物件,以及啟用或停用自動完成。
若要使用自動完成物件實作編輯控制元件的自動完成,請執行下列動作:
- 實作字串清單元件物件模型 (COM) 匯出 IEnumString 介面的物件。 此字串清單物件負責提供自動完成物件將作為已完成字串的候選專案之字串清單。
- 使用 CoCreateInstance 建立自動完成對象的實例。 要求其 IAutoComplete 介面的指標。
- 呼叫 IAutoComplete::Init。 將 hwndEdit 參數設定為編輯控制元件的視窗句柄。 如果編輯控制項內嵌在另一個控制項中,您必須擷取編輯控制項本身的句柄。 例如,若要擷取內嵌在 comboboxex 控件中的編輯控件句柄,請傳送 CBEM_GETEDITCONTROL 訊息。 將IAutoComplete::Init的 punkACL 參數設定為字串清單物件的 IUnknown 指標。
- 如果您不想使用預設選項,請擷取自動完成物件的 IAutoComplete2 介面指標。 呼叫 IAutoComplete2::SetOptions 以設定所需的選項。
- autocomplete 物件會使用字串清單物件的 IUnknown 指標,在步驟 3 中傳遞為 punkACL ,以擷取該物件的 IEnumString 介面指標。 自動完成物件接著會呼叫該介面,以產生其候選字串清單。 它會從該清單中選取符合 控件中部分字串的字串。 在自動套用模式中,完成字串所需的字元會附加至部分字串並反白顯示。 在自動建議模式中,含有一或多個可能字串清單的下拉式方塊會顯示在編輯控件下方。
- 如果使用者接受自動完成的字串,編輯控件的行為就像是手動輸入字串一樣。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版、Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | shldisp.h |