Como faço para criar uma caixa de combinação MFC com pesquisa
-
19-08-2019 - |
Pergunta
Eu preciso de um combobox em um aplicativo do Windows MFC que tem um recurso de pesquisa. Ele deve funcionar de modo que se você começar a digitar algo que corresponde a um ou mais itens na lista, a caixa de combinação deve suspensa e exibir esses itens. Kinda como caixas de pesquisa baseada em Ajax populares na web
Você - saber de qualquer controle que fornece essa funcionalidade? - tem um link para informações sobre como criar essa funcionalidade mim mesmo? - tem idéias sobre como fazer isso que você poderia compartilhar
?Solução
Encontrei este:
http://www.codeguru.com/cpp/ controles / combobox / article.php / c1807 /
rebatizado de classe desde CComboBoxEx agora faz parte do MFC, e acrescentou uma chamada ShowDropDown () in OnEditUpdate ().
Outras dicas
É uma api FAQ Win32. Veja Adv. Win32 API ng notícia: //194.177.96.26/comp.os.ms-windows.programmer.win32 (Você não precisa de todo CBN_EDITCHANGE. É automático com api)
Acesso total a caixa de edição da caixa de combinação:
CEdit *pEdit = (CEdit *)pComboBox->GetWindow(GW_CHILD);
CEdit * Pedit = (CEdit *) pComboBox-> GetWindow (GW_CHILD);
Posso obter acesso à parte de caixa de listagem de forma semelhante? Necessidade de limpar o conteúdo da lista, por exemplo, usando ResetContent.
Fornecer um manipulador para o evento CBN_EDITCHANGE
, seu manipulador de Willo ser chamado cada vez que o usuário altera o texto no campo de edição.
Neste Handler, chamar o método CComboBox::FindString()
para ver se o texto digitado existe em qualquer das suas entradas combobox. Se isso acontecer, CComboBox::SetCurSel()
chamada para selecioná-lo.