Share via


IAutoComplete-Schnittstelle (shldisp.h)

Verfügbar gemacht durch das AutoVervollständigen-Objekt (CLSID_AutoComplete). Mit dieser Schnittstelle können Anwendungen das Objekt initialisieren, aktivieren und deaktivieren.

Vererbung

Die IAutoComplete-Schnittstelle erbt von der IUnknown-Schnittstelle . IAutoComplete verfügt auch über folgende Membertypen:

Methoden

Die IAutoComplete-Schnittstelle verfügt über diese Methoden.

 
IAutoComplete::Enable

Aktiviert oder deaktiviert die automatische Vervollständigung.
IAutoComplete::Init

Initialisiert das AutoVervollständigen-Objekt.

Hinweise

Die automatische Vervollständigung erweitert Zeichenfolgen, die teilweise in ein Bearbeitungssteuerelement eingegeben wurden, in vollständige Zeichenfolgen. Wenn ein Benutzer beispielsweise beginnt, eine URL im Steuerelement Adressbearbeitung einzugeben, das in die Symbolleiste von Windows Internet Explorer eingebettet ist, erweitert die automatische Vervollständigung die Zeichenfolge in eine oder mehrere vollständige URLs, die mit der vorhandenen Teilzeichenfolge konsistent sind. Eine partielle URL-Zeichenfolge wie "mic" kann zu "http://www.microsoft.com" oder "http://www.microsoft.com/windows". Die automatische Vervollständigung wird in der Regel mit Bearbeitungssteuerelementen oder mit Steuerelementen verwendet, die über ein eingebettetes Bearbeitungssteuerelement wie das comboboxex-Steuerelement verfügen.

Die automatische Vervollständigung verfügt über zwei Modi zum Anzeigen der abgeschlossenen Zeichenfolge. Die Modi sind unabhängig, sodass Sie entweder oder beides aktivieren können. Um den Modus anzugeben, rufen Sie IAutoComplete2::SetOptions auf. Die Modi sind wie folgt:

  • Im AutoAppend-Modus fügt autovervollständigen den Rest der wahrscheinlichsten Kandidatenzeichenfolge an die vorhandenen Zeichen an, wobei die angefügten Zeichen hervorgehoben werden. Das Bearbeitungssteuerelement verhält sich so, als hätte der Benutzer die gesamte Zeichenfolge manuell eingegeben und dann die angefügten Zeichen hervorgehoben. Wenn der Benutzer weiterhin Zeichen eingibt, werden diese der vorhandenen Teilzeichenfolge hinzugefügt. Wenn der Benutzer ein Zeichen hinzufügt, das mit dem nächsten hervorgehobenen Zeichen identisch ist, wird die Hervorhebung für dieses Zeichen deaktiviert. Die übrigen Zeichen werden weiterhin hervorgehoben. Wenn der Benutzer ein Zeichen hinzufügt, das nicht mit dem nächsten hervorgehobenen Zeichen übereinstimmt, versucht die automatische Vervollständigung, eine neue Kandidatenzeichenfolge basierend auf der größeren Teilzeichenfolge zu generieren. Der Rest der neuen Kandidatenzeichenfolge wird wie zuvor an die aktuelle Teilzeichenfolge angefügt. Wenn keine Kandidatenzeichenfolge gefunden werden kann, werden nur die eingegebenen Zeichen angezeigt, und das Bearbeitungsfeld verhält sich wie ohne automatische Vervollständigung. Dieser Prozess wird fortgesetzt, bis der Benutzer eine Zeichenfolge akzeptiert.
  • Im Modus für die automatische Erfassung zeigt die automatische Vervollständigung eine Dropdownliste unter dem Bearbeitungssteuerelement mit einer oder mehreren vorgeschlagenen vollständigen Zeichenfolgen an. Der Benutzer kann eine der vorgeschlagenen Zeichenfolgen auswählen, in der Regel, indem er darauf klickt, oder mit der Eingabe fortfahren. Wenn die Eingabe fortschreitet, kann die Dropdownliste basierend auf der aktuellen partiellen Zeichenfolge geändert werden. Wenn Sie das ACO_SEARCH-Flag im dwFlag-Parameter von IAutoComplete2::SetOptions festlegen, wird am Ende der Dropdownliste ein Element "Suche nach 'XXX'" hinzugefügt. Sie wird auch dann angezeigt, wenn keine vorgeschlagenen Zeichenfolgen vorhanden sind. "XXX" wird auf die aktuelle partielle Zeichenfolge festgelegt und aktualisiert, wenn der Benutzer die Eingabe fortsetzt. Wenn der Benutzer "Suchen nach ..."" auswählt, sollte Ihre Anwendung eine Suchmaschine starten, um den Benutzer zu unterstützen.
Die einfachste Möglichkeit zum Implementieren der automatischen Vervollständigung ist das Aufrufen von SHAutoComplete. Wenn diese Funktion für ein Systembearbeitungssteuerelement aufgerufen wird, führt das Steuerelement teilweise eingegebene Dateisystempfade oder URLs automatisch aus. Um die automatische Vervollständigung für andere Zeichenfolgentypen zu aktivieren oder mehr Kontrolle über die Funktionsweise der autoVervollständigen zu haben, können Sie das zugrunde liegende AutoVervollständigen-Objekt direkt verwenden.

Diese Schnittstelle wird in der Regel nicht von Anwendungen implementiert. Sie wird vom AutoVervollständigen-Objekt der Shell verfügbar gemacht und von Anwendungen verwendet.

Verwenden Sie die IAutoComplete-Schnittstelle des autoComplete-Objekts, um das Objekt zu initialisieren und die automatische Vervollständigung zu aktivieren oder zu deaktivieren.

Gehen Sie wie folgt vor, um die automatische Vervollständigung für ein Bearbeitungssteuerelement mithilfe des AutoVervollständigen-Objekts zu implementieren:

  1. Implementieren Sie ein COM-Objekt (Component Object Model), das eine IEnumString-Schnittstelle exportiert. Dieses Zeichenfolgenlistenobjekt ist für die Bereitstellung der Liste der Zeichenfolgen zuständig, die das AutoVervollständigen-Objekt als Kandidaten für abgeschlossene Zeichenfolgen verwendet.
  2. Erstellen Sie mit CoCreateInstance eine instance des AutoVervollständigen-Objekts. Fordern Sie einen Zeiger auf die zugehörige IAutoComplete-Schnittstelle an.
  3. Rufen Sie IAutoComplete::Init auf. Legen Sie den hwndEdit-Parameter auf das Fensterhandle des Bearbeitungssteuerelements fest. Wenn das Bearbeitungssteuerelement in ein anderes Steuerelement eingebettet ist, müssen Sie das Handle zum Bearbeitungssteuerelement selbst abrufen. Um beispielsweise ein Handle für das in ein Comboboxex-Steuerelement eingebettete Bearbeitungssteuerelement abzurufen, senden Sie eine CBEM_GETEDITCONTROL Nachricht. Legen Sie den punkACL-Parameter von IAutoComplete::Init auf den IUnknown-Zeiger des Zeichenfolgenlistenobjekts fest.
  4. Wenn Sie die Standardoptionen nicht verwenden möchten, rufen Sie einen Zeiger auf die IAutoComplete2-Schnittstelle des AutoVervollständigen-Objekts ab. Rufen Sie IAutoComplete2::SetOptions auf, um die gewünschten Optionen festzulegen.
  5. Das AutoVervollständigen-Objekt verwendet den IUnknown-Zeiger des Zeichenfolgenlistenobjekts , das in Schritt 3 als punkACL übergeben wurde, um einen Zeiger auf die IEnumString-Schnittstelle dieses Objekts abzurufen. Das AutoVervollständigen-Objekt ruft dann diese Schnittstelle auf, um die Liste der Kandidatenzeichenfolgen zu generieren. Es wählt Zeichenfolgen aus dieser Liste aus, die eine akzeptable Übereinstimmung mit der partiellen Zeichenfolge im -Steuerelement sind. Im Autoappend-Modus werden die zum Abschließen der Zeichenfolge erforderlichen Zeichen an die Teilzeichenfolge angefügt und hervorgehoben. Im Modus für die automatische Erfassung wird unterhalb des Bearbeitungssteuerelements ein Dropdownfeld mit einer Liste mit einer oder mehreren möglichen Zeichenfolgen angezeigt.
  6. Wenn der Benutzer eine automatisch vervollständigte Zeichenfolge akzeptiert, verhält sich das Bearbeitungssteuerelement so, als ob die Zeichenfolge manuell eingegeben worden wäre.
Die automatische Vervollständigung ist standardmäßig aktiviert. Anwendungen müssen nur IAutoComplete::Enable aufrufen, um die automatische Vervollständigung zu deaktivieren oder erneut zu aktivieren, wenn sie deaktiviert wurde.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional, Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile shldisp.h

Weitere Informationen

IACList

IACList2

IAutoComplete2

ICurrentWorkingDirectory

IObjMgr