次の方法で共有


IAutoComplete インターフェイス (shldisp.h)

オートコンプリート オブジェクト (CLSID_AutoComplete) によって公開されます。 このインターフェイスを使用すると、アプリケーションは オブジェクトの初期化、有効化、無効化を行えます。

継承

IAutoComplete インターフェイスは、IUnknown インターフェイスから継承されます。 IAutoComplete には、次の種類のメンバーもあります。

メソッド

IAutoComplete インターフェイスには、これらのメソッドがあります。

 
IAutoComplete::Enable

オートコンプリートを有効または無効にします。
IAutoComplete::Init

オートコンプリート オブジェクトを初期化します。

注釈

オートコンプリートは、 編集コントロール に部分的に入力された文字列を完全な文字列に展開します。 たとえば、ユーザーが Windows インターネット エクスプローラー ツール バーに埋め込まれているアドレス編集コントロールに URL を入力し始めると、オートコンプリートによって、既存の部分文字列と一致する 1 つ以上の完全な URL に文字列が展開されます。 "mic" などの部分 URL 文字列が "http://www.microsoft.com" に展開される場合があります。または "http://www.microsoft.com/windows". オートコンプリートは、通常、編集コントロールまたは comboboxex コントロールなどの埋め込み編集コントロールを持つコントロールで使用されます。

オートコンプリートには、完成した文字列を表示するための 2 つのモードがあります。 モードは独立しているため、どちらか一方または両方を有効にすることができます。 モードを指定するには、 IAutoComplete2::SetOptions を呼び出します。 モードは次のとおりです。

  • 自動適用モードでは、オートコンプリートによって、最も可能性の高い候補文字列の残りの部分が既存の文字に追加され、追加された文字が強調表示されます。 編集コントロールは、ユーザーが文字列全体を手動で入力し、追加された文字を強調表示したかのように動作します。 ユーザーが文字を入力し続ける場合は、既存の部分文字列に追加されます。 ユーザーが次に強調表示されている文字と同じ文字を追加すると、その文字の強調表示がオフになります。 残りの文字は引き続き強調表示されます。 ユーザーが次に強調表示されている文字と一致しない文字を追加すると、オートコンプリートは、大きな部分文字列に基づいて新しい候補文字列を生成しようとします。 前と同様に、新しい候補文字列の残りの部分を現在の部分文字列に追加します。 候補の文字列が見つからない場合は、型指定された文字のみが表示され、編集ボックスはオートコンプリートを使用しない場合と同様に動作します。 このプロセスは、ユーザーが文字列を受け入れるまで続行されます。
  • autosuggest モードでは、オートコンプリートは、1 つ以上の候補の完全な文字列を含むドロップダウン リストを編集コントロールの下に表示します。 ユーザーは、提案された文字列の 1 つ (通常はクリック) を選択するか、入力を続けることができます。 入力が進むにつれて、現在の部分文字列に基づいてドロップダウン リストを変更できます。 IAutoComplete2::SetOptionsdwFlag パラメーターでACO_SEARCH フラグを設定すると、ドロップダウン リストの下部に "XXX' を検索する] 項目が追加されます。 候補の文字列がない場合でも表示されます。 "XXX" は現在の部分文字列に設定され、ユーザーが入力を続けるにつれて更新されます。 ユーザーが ['...' の検索] を選択した場合、アプリケーションはユーザーを支援する検索エンジンを起動する必要があります。
オートコンプリートを実装する最も簡単な方法は、 SHAutoComplete を呼び出す方法です。 この関数がシステム編集コントロールに対して呼び出されると、コントロールは部分的に入力されたファイル システム パスまたは URL をオートコンプリートします。 他の種類の文字列のオートコンプリートを有効にしたり、オートコンプリートの動作をより詳細に制御したりするには、基になるオートコンプリート オブジェクトを直接使用できます。

このインターフェイスは、通常、アプリケーションによって実装されません。 これは、シェルのオートコンプリート オブジェクトによって公開され、アプリケーションによって使用されます。

オートコンプリート オブジェクトの IAutoComplete インターフェイスを使用して、オブジェクトを初期化し、オートコンプリートを有効または無効にします。

オートコンプリート オブジェクトを使用して編集コントロールのオートコンプリートを実装するには、次の操作を行います。

  1. IEnumString インターフェイスをエクスポートする文字列リスト コンポーネント オブジェクト モデル (COM) オブジェクトを実装します。 この文字列リスト オブジェクトは、オートコンプリート オブジェクトが完成した文字列の候補として使用する文字列の一覧を提供します。
  2. CoCreateInstance を使用してオートコンプリート オブジェクトのインスタンスを作成します。 IAutoComplete インターフェイスへのポインターを要求します。
  3. IAutoComplete::Init を呼び出します。 hwndEdit パラメーターを編集コントロールのウィンドウ ハンドルに設定します。 編集コントロールが別のコントロールに埋め込まれている場合は、編集コントロール自体へのハンドルを取得する必要があります。 たとえば、 comboboxex コントロールに埋め込まれた編集コントロールへのハンドルを取得するには、 CBEM_GETEDITCONTROL メッセージを送信します。 IAutoComplete::InitpunkACL パラメーターを、文字列リスト オブジェクトの IUnknown ポインターに設定します。
  4. 既定のオプションを使用しない場合は、オートコンプリート オブジェクトの IAutoComplete2 インターフェイスへのポインターを取得します。 IAutoComplete2::SetOptions を呼び出して、目的のオプションを設定します。
  5. オートコンプリート オブジェクトは、手順 3 で punkACL として渡された文字列リスト オブジェクトの IUnknown ポインターを使用して、そのオブジェクトの IEnumString インターフェイスへのポインターを取得します。 オートコンプリート オブジェクトは、そのインターフェイスを呼び出して候補文字列の一覧を生成します。 そのリストから、コントロール内の部分文字列と一致する文字列を選択します。 自動適用モードでは、文字列を完了するために必要な文字が部分文字列に追加され、強調表示されます。 autosuggest モードでは、1 つ以上の可能な文字列の一覧を含むドロップダウン ボックスが編集コントロールの下に表示されます。
  6. ユーザーがオートコンプリートされた文字列を受け入れると、編集コントロールは文字列が手動で入力されたかのように動作します。
オートコンプリートは既定で有効になっています。 アプリケーションは IAutoComplete::Enable を呼び出してオートコンプリートを無効にするか、無効になっている場合は再度有効にする必要があります。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional、Windows XP [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー shldisp.h

こちらもご覧ください

IACList

IACList2

IAutoComplete2

ICurrentWorkingDirectory

IObjMgr