Interface IAutoComplete (shldisp.h)
Exposto pelo objeto de preenchimento automático (CLSID_AutoComplete). Essa interface permite que os aplicativos inicializem, habilitem e desabilitem o objeto.
Herança
A interface IAutoComplete herda da interface IUnknown . O IAutoComplete também tem esses tipos de membros:
Métodos
A interface IAutoComplete tem esses métodos.
IAutoComplete::Enable Habilita ou desabilita o preenchimento automático. |
IAutoComplete::Init Inicializa o objeto de preenchimento automático. |
Comentários
A preenchimento automático expande cadeias de caracteres que foram parcialmente inseridas em um controle de edição em cadeias de caracteres completas. Por exemplo, quando um usuário começa a digitar uma URL no controle de edição de endereço inserido na barra de ferramentas Explorer da Internet do Windows, a preenchimento automático expande a cadeia de caracteres em uma ou mais URLs completas consistentes com a cadeia de caracteres parcial existente. Uma cadeia de caracteres de URL parcial, como "mic", pode ser expandida para "http://www.microsoft.com" ou "http://www.microsoft.com/windows". O preenchimento automático normalmente é usado com controles de edição ou com controles que têm um controle de edição inserido, como o controle comboboxex.
O preenchimento automático tem dois modos para exibir a cadeia de caracteres concluída. Os modos são independentes, portanto, você pode habilitar ou ambos. Para especificar o modo, chame IAutoComplete2::SetOptions. Os modos são os seguintes:
- No modo de autoaplicativo , o preenchimento automático acrescenta o restante da cadeia de caracteres candidata mais provável aos caracteres existentes, realçando os caracteres acrescentados. O controle de edição se comporta como se o usuário tivesse inserido a cadeia de caracteres inteira manualmente e realçado os caracteres acrescentados. Se o usuário continuar a inserir caracteres, ele será adicionado à cadeia de caracteres parcial existente. Se o usuário adicionar um caractere idêntico ao próximo caractere realçado, o realce desse caractere será desativado. Os caracteres restantes ainda serão realçados. Se o usuário adicionar um caractere que não corresponde ao próximo caractere realçado, a preenchimento automático tentará gerar uma nova cadeia de caracteres candidata com base na cadeia de caracteres parcial maior. Ele acrescenta o restante da nova cadeia de caracteres candidata à cadeia de caracteres parcial atual, como antes. Se nenhuma cadeia de caracteres candidata puder ser encontrada, apenas os caracteres digitado aparecerão e a caixa de edição se comportará como faria sem preenchimento automático. Esse processo continua até que o usuário aceite uma cadeia de caracteres.
- No modo de sugestão automática, o preenchimento automático exibe uma lista suspensa abaixo do controle de edição com uma ou mais cadeias de caracteres completas sugeridas. O usuário pode selecionar uma das cadeias de caracteres sugeridas, geralmente clicando nela ou continuar digitando. À medida que a digitação progride, a lista suspensa pode ser modificada, com base na cadeia de caracteres parcial atual. Se você definir o sinalizador ACO_SEARCH no parâmetro dwFlag de IAutoComplete2::SetOptions, um item "Pesquisar 'XXX'" será adicionado à parte inferior da lista suspensa. Ele é exibido mesmo que não haja cadeias de caracteres sugeridas. "XXX" é definido como a cadeia de caracteres parcial atual e é atualizado à medida que o usuário continua a digitar. Se o usuário selecionar "Pesquisar por '...'", seu aplicativo deverá iniciar um mecanismo de pesquisa para ajudar o usuário.
Essa interface geralmente não é implementada por aplicativos. Ele é exposto pelo objeto de preenchimento automático do Shell e usado por aplicativos.
Use a interface IAutoComplete do objeto de preenchimento automático para inicializar o objeto e habilitar ou desabilitar o preenchimento automático.
Para implementar a preenchimento automático para um controle de edição usando o objeto de preenchimento automático, faça o seguinte:
- Implemente um objeto COM (Component Object Model) da lista de cadeias de caracteres que exporta uma interface IEnumString . Esse objeto de lista de cadeias de caracteres é responsável por fornecer a lista de cadeias de caracteres que o objeto de preenchimento automático usará como candidatos para cadeias de caracteres concluídas.
- Crie uma instância do objeto de preenchimento automático com CoCreateInstance. Solicite um ponteiro para sua interface IAutoComplete .
- Chame IAutoComplete::Init. Defina o parâmetro hwndEdit como o identificador de janela do controle de edição. Se o controle de edição estiver inserido em outro controle, você deverá recuperar o identificador para o próprio controle de edição. Por exemplo, para recuperar um identificador para o controle de edição inserido em um controle comboboxex, envie uma mensagem CBEM_GETEDITCONTROL . Defina o parâmetro punkACL de IAutoComplete::Init como o ponteiro IUnknown do objeto de lista de cadeias de caracteres.
- Se você não quiser usar as opções padrão, recupere um ponteiro para a interface IAutoComplete2 do objeto de preenchimento automático. Chame IAutoComplete2::SetOptions para definir as opções desejadas.
- O objeto de preenchimento automático usa o ponteiro IUnknown do objeto string list, passado como punkACL na etapa 3, para recuperar um ponteiro para a interface IEnumString desse objeto. Em seguida, o objeto de preenchimento automático chama essa interface para gerar sua lista de cadeias de caracteres candidatas. Ele seleciona cadeias de caracteres nessa lista que são uma correspondência aceitável com a cadeia de caracteres parcial no controle. No modo de autoaplicativo, os caracteres necessários para concluir a cadeia de caracteres são acrescentados à cadeia de caracteres parcial e realçados. No modo de sugestão automática, uma caixa suspensa com uma lista de uma ou mais cadeias de caracteres possíveis é exibida abaixo do controle de edição.
- Se o usuário aceitar uma cadeia de caracteres autocompletada, o controle de edição se comportará como se a cadeia de caracteres tivesse sido inserida manualmente.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional, Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | shldisp.h |