Partager via


Interface IAutoComplete (shldisp.h)

Exposé par l’objet de saisie semi-automatique (CLSID_AutoComplete). Cette interface permet aux applications d’initialiser, d’activer et de désactiver l’objet.

Héritage

L’interface IAutoComplete hérite de l’interface IUnknown. IAutoComplete a également les types de membres suivants :

Méthodes

L’interface IAutoComplete possède ces méthodes.

 
IAutoComplete ::Enable

Active ou désactive la saisie automatique.
IAutoComplete ::Init

Initialise l’objet de saisie semi-automatique.

Remarques

La saisie automatique étend les chaînes qui ont été partiellement entrées dans un contrôle d’édition en chaînes complètes. Par exemple, lorsqu’un utilisateur commence à taper une URL dans le contrôle de modification d’adresse incorporé dans la barre d’outils Windows Internet Explorer, la saisie automatique développe la chaîne en une ou plusieurs URL complètes qui sont cohérentes avec la chaîne partielle existante. Une chaîne d’URL partielle telle que « micro » peut être développée vers «http://www.microsoft.com" ; ou « http://www.microsoft.com/windows". La saisie automatique est généralement utilisée avec des contrôles d’édition ou avec des contrôles qui ont un contrôle d’édition incorporé tel que le contrôle comboboxex.

La saisie automatique a deux modes pour afficher la chaîne terminée. Les modes étant indépendants, vous pouvez activer l’une ou l’autre des deux. Pour spécifier le mode, appelez IAutoComplete2 ::SetOptions. Les modes sont les suivants :

  • En mode d’application automatique , la saisie automatique ajoute le reste de la chaîne candidate la plus probable aux caractères existants, en mettant en évidence les caractères ajoutés. Le contrôle d’édition se comporte comme si l’utilisateur avait entré manuellement la chaîne entière, puis mis en surbrillance les caractères ajoutés. Si l’utilisateur continue d’entrer des caractères, ils sont ajoutés à la chaîne partielle existante. Si l’utilisateur ajoute un caractère identique au caractère en surbrillance suivant, la mise en surbrillance de ce caractère est désactivée. Les caractères restants seront toujours mis en surbrillance. Si l’utilisateur ajoute un caractère qui ne correspond pas au caractère en surbrillance suivant, l’autocomplétion tente de générer une nouvelle chaîne candidate en fonction de la chaîne partielle plus grande. Il ajoute le reste de la nouvelle chaîne candidate à la chaîne partielle actuelle, comme précédemment. Si aucune chaîne candidate n’est trouvée, seuls les caractères tapés s’affichent et la zone d’édition se comporte comme elle le ferait sans autocomplétion. Ce processus se poursuit jusqu’à ce que l’utilisateur accepte une chaîne.
  • En mode de suggestion automatique , la saisie automatique affiche une liste déroulante sous le contrôle d’édition avec une ou plusieurs chaînes complètes suggérées. L’utilisateur peut sélectionner l’une des chaînes suggérées, généralement en cliquant dessus, ou continuer à taper. Au fur et à mesure que la saisie progresse, la liste déroulante peut être modifiée, en fonction de la chaîne partielle actuelle. Si vous définissez l’indicateur de ACO_SEARCH dans le paramètre dwFlag de IAutoComplete2 ::SetOptions, un élément « Rechercher 'XXX' » est ajouté au bas de la liste déroulante. Il s’affiche même s’il n’y a pas de chaînes suggérées. « XXX » est défini sur la chaîne partielle actuelle et est mis à jour à mesure que l’utilisateur continue de taper. Si l’utilisateur sélectionne « Rechercher « ... », votre application doit lancer un moteur de recherche pour l’aider.
Le moyen le plus simple d’implémenter la saisie automatique consiste à appeler SHAutoComplete. Lorsque cette fonction est appelée pour un contrôle d’édition système, le contrôle s’autocomplétise automatiquement les chemins d’accès du système de fichiers ou les URL partiellement entrés. Pour activer la saisie automatique pour d’autres types de chaînes ou pour avoir un contrôle accru sur le fonctionnement de l’autocomplétion, vous pouvez utiliser directement l’objet autocomplétion sous-jacent.

Cette interface n’est généralement pas implémentée par les applications. Il est exposé par l’objet de saisie semi-automatique de l’interpréteur de commandes et utilisé par les applications.

Utilisez l’interface IAutoComplete de l’objet de saisie semi-automatique pour initialiser l’objet et activer ou désactiver la saisie automatique.

Pour implémenter la saisie automatique pour un contrôle d’édition à l’aide de l’objet de saisie semi-automatique, procédez comme suit :

  1. Implémentez un objet COM (Component Object Model) de liste de chaînes qui exporte une interface IEnumString . Cet objet de liste de chaînes est chargé de fournir la liste des chaînes que l’objet de saisie semi-automatique utilisera comme candidats pour les chaînes terminées.
  2. Créez un instance de l’objet de saisie semi-automatique avec CoCreateInstance. Demandez un pointeur vers son interface IAutoComplete .
  3. Appelez IAutoComplete ::Init. Définissez le paramètre hwndEdit sur le handle de fenêtre du contrôle d’édition. Si le contrôle d’édition est incorporé dans un autre contrôle, vous devez récupérer le handle du contrôle d’édition lui-même. Par exemple, pour récupérer un handle dans le contrôle d’édition incorporé dans un contrôle comboboxex, envoyez un message CBEM_GETEDITCONTROL . Définissez le paramètre punkACL de IAutoComplete ::Init sur le pointeur IUnknown de l’objet de liste de chaînes.
  4. Si vous ne souhaitez pas utiliser les options par défaut, récupérez un pointeur vers l’interface IAutoComplete2 de l’objet de saisie semi-automatique. Appelez IAutoComplete2 ::SetOptions pour définir les options souhaitées.
  5. L’objet de saisie semi-automatique utilise le pointeur IUnknown de l’objet de liste de chaînes, passé en tant que punkACL à l’étape 3, pour récupérer un pointeur vers l’interface IEnumString de cet objet. L’objet de saisie semi-automatique appelle ensuite cette interface pour générer sa liste de chaînes candidates. Il sélectionne les chaînes de cette liste qui correspondent à la chaîne partielle du contrôle. En mode d’application automatique, les caractères nécessaires pour terminer la chaîne sont ajoutés à la chaîne partielle et mis en surbrillance. En mode de suggestion automatique, une zone de liste déroulante contenant une liste d’une ou plusieurs chaînes possibles s’affiche sous le contrôle d’édition.
  6. Si l’utilisateur accepte une chaîne de saisie automatique, le contrôle d’édition se comporte comme si la chaîne avait été entrée manuellement.
La saisie automatique est activée par défaut. Les applications doivent uniquement appeler IAutoComplete ::Enable pour désactiver l’autocomplétion ou la réactiver si elle a été désactivée.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel, Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête shldisp.h

Voir aussi

IACList

IACList2

IAutoComplete2

ICurrentWorkingDirectory

IObjMgr