Compartir a través de


Interfaz IAutoComplete (shldisp.h)

Expuesto por el objeto autocompletar (CLSID_AutoComplete). Esta interfaz permite que las aplicaciones inicialicen, habiliten y deshabiliten el objeto .

Herencia

La interfaz IAutoComplete hereda de la interfaz IUnknown . IAutoComplete también tiene estos tipos de miembros:

Métodos

La interfaz IAutoComplete tiene estos métodos.

 
IAutoComplete::Enable

Habilita o deshabilita la autocompletar.
IAutoComplete::Init

Inicializa el objeto autocompletar.

Comentarios

Autocompletar expande las cadenas que se han escrito parcialmente en un control de edición en cadenas completas. Por ejemplo, cuando un usuario empieza a escribir una dirección URL en el control de edición dirección incrustado en la barra de herramientas de Windows Internet Explorer, la función autocompletar expande la cadena en una o varias direcciones URL completas que sean coherentes con la cadena parcial existente. Una cadena de dirección URL parcial como "mic" podría expandirse a "http://www.microsoft.com" o "http://www.microsoft.com/windows". La autocompletar se usa normalmente con controles de edición o con controles que tienen un control de edición incrustado, como el control comboboxex.

La autocompletar tiene dos modos para mostrar la cadena completada. Los modos son independientes, por lo que puede habilitar o ambos. Para especificar el modo, llame a IAutoComplete2::SetOptions. Los modos son los siguientes:

  • En el modo de autoaplicación , la autocompletar anexa el resto de la cadena candidata más probable a los caracteres existentes, resaltando los caracteres anexados. El control de edición se comporta como si el usuario hubiera escrito manualmente toda la cadena y, a continuación, resaltado los caracteres anexados. Si el usuario sigue especificando caracteres, se agregan a la cadena parcial existente. Si el usuario agrega un carácter idéntico al siguiente carácter resaltado, se desactivará el resaltado de ese carácter. Los caracteres restantes se seguirán resaltando. Si el usuario agrega un carácter que no coincide con el siguiente carácter resaltado, la función autocompletar intenta generar una nueva cadena candidata basada en la cadena parcial más grande. Anexa el resto de la nueva cadena candidata a la cadena parcial actual, como antes. Si no se encuentra ninguna cadena candidata, solo aparecen los caracteres con tipo y el cuadro de edición se comporta como lo haría sin autocompletar. Este proceso continúa hasta que el usuario acepta una cadena.
  • En el modo autosuggest , la autocompletar muestra una lista desplegable debajo del control de edición con una o varias cadenas completas sugeridas. El usuario puede seleccionar una de las cadenas sugeridas, normalmente haciendo clic en ella o escribiendo. A medida que avanza la escritura, se puede modificar la lista desplegable, en función de la cadena parcial actual. Si establece la marca ACO_SEARCH en el parámetro dwFlag de IAutoComplete2::SetOptions, se agrega un elemento "Buscar 'XXX'" a la parte inferior de la lista desplegable. Se muestra incluso si no hay ninguna cadena sugerida. "XXX" se establece en la cadena parcial actual y se actualiza a medida que el usuario continúa con el tipo. Si el usuario selecciona "Buscar '...'", la aplicación debe iniciar un motor de búsqueda para ayudar al usuario.
La manera más sencilla de implementar la autocompletar es llamar a SHAutoComplete. Cuando se llama a esta función para un control de edición del sistema, el control se autocompletará parcialmente en las rutas de acceso o direcciones URL del sistema de archivos. Para habilitar la autocompletar para otros tipos de cadenas, o para tener más control sobre cómo funciona la autocompletar, puede usar el objeto autocompletar subyacente directamente.

Normalmente, esta interfaz no se implementa en las aplicaciones. Se expone mediante el objeto autocompletar del Shell y lo usan las aplicaciones.

Use la interfaz IAutoComplete del objeto autocompletar para inicializar el objeto y para habilitar o deshabilitar la función de autocompletar.

Para implementar la autocompletar para un control de edición mediante el objeto autocompletar, haga lo siguiente:

  1. Implemente un objeto Component Object Model (COM) de lista de cadenas que exporte una interfaz IEnumString . Este objeto de lista de cadenas es responsable de proporcionar la lista de cadenas que el objeto autocompletar usará como candidatos para las cadenas completadas.
  2. Cree una instancia del objeto autocompletar con CoCreateInstance. Solicite un puntero a su interfaz IAutoComplete .
  3. Llame a IAutoComplete::Init. Establezca el parámetro hwndEdit en el identificador de ventana del control de edición. Si el control de edición está incrustado en otro control, debe recuperar el identificador del propio control de edición. Por ejemplo, para recuperar un identificador del control de edición incrustado en un control comboboxex, envíe un mensaje CBEM_GETEDITCONTROL . Establezca el parámetro punkACL de IAutoComplete::Init en el puntero IUnknown del objeto de lista de cadenas.
  4. Si no desea usar las opciones predeterminadas, recupere un puntero a la interfaz IAutoComplete2 del objeto autocompletar . Llame a IAutoComplete2::SetOptions para establecer las opciones deseadas.
  5. El objeto autocompletar usa el puntero IUnknown del objeto de lista de cadenas, pasado como punkACL en el paso 3, para recuperar un puntero a la interfaz IEnumString de ese objeto. A continuación, el objeto autocompletar llama a esa interfaz para generar su lista de cadenas candidatas. Selecciona cadenas de esa lista que son una coincidencia aceptable con la cadena parcial del control. En el modo de autoaplicación, los caracteres necesarios para completar la cadena se anexan a la cadena parcial y se resaltan. En el modo autosuggest, se muestra un cuadro desplegable con una lista de una o varias cadenas posibles debajo del control de edición.
  6. Si el usuario acepta una cadena autocompleted, el control de edición se comporta como si la cadena se hubiera escrito manualmente.
La autocompletar está habilitada de forma predeterminada. Las aplicaciones solo necesitan llamar a IAutoComplete::Enable para deshabilitar la autocompletar o volver a habilitarla si se ha deshabilitado.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional, Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado shldisp.h

Consulte también

IACList

IACList2

IAutoComplete2

ICurrentWorkingDirectory

IObjMgr