Come faccio a creare un ComboBox MFC con la ricerca
-
19-08-2019 - |
Domanda
Ho bisogno di una casella combinata in un'applicazione Windows MFC con una funzione di ricerca. Dovrebbe funzionare in modo tale che se si inizia a digitare qualcosa che corrisponde a uno o più elementi nell'elenco, la casella combinata dovrebbe essere visualizzata e visualizzata. Mi piacciono le famose caselle di ricerca basate su Ajax sul Web
Sì - conosci qualche controllo che fornisce questa funzionalità? - avere un collegamento alle informazioni su come creare tale funzionalità da solo? - hai idee su come farlo che potresti condividere?
Soluzione
Trovato questo:
http://www.codeguru.com/cpp/ controlli / combobox / Article.php / c1807 /
Rinominata classe poiché CComboBoxEx è ora parte di MFC e ha aggiunto una chiamata ShowDropDown () in OnEditUpdate ().
Altri suggerimenti
È una FAQ API di Win32. Vedi Adv. Novità di Win32: //194.177.96.26/comp.os.ms-windows.programmer.win32 (non è necessario affatto CBN_EDITCHANGE. È automatico con api)
Accesso completo alla casella di modifica della casella combinata:
CEdit *pEdit = (CEdit *)pComboBox->GetWindow(GW_CHILD);
CEdit * pEdit = (CEdit *) pComboBox- > GetWindow (GW_CHILD);
Posso accedere alla parte ListBox in modo simile? È necessario cancellare il contenuto dell'elenco, ad es. utilizzando ResetContent.
Fornisci un gestore per l'evento CBN_EDITCHANGE
, il tuo gestore sarà & # 246; essere chiamato ogni volta che l'utente cambia il testo nel campo di modifica.
In questo gestore, chiama il metodo CComboBox :: FindString ()
per vedere se il testo digitato esiste in una delle voci della casella combinata. In tal caso, chiama CComboBox :: SetCurSel ()
per selezionarlo.