Wie kann ich mit Suche eine MFC-ComboBox erstellen
-
19-08-2019 - |
Frage
Ich brauche eine Combobox in einer Windows-MFC-Anwendung, die eine Suchfunktion hat. Es sollte so funktionieren, dass, wenn Sie etwas eingeben beginnen, die ein oder mehr Objekte in der Liste übereinstimmt, sollte die Combobox-down fallen und diese Elemente anzuzeigen. Kinda wie beliebte Ajax-basierten Suchfelder im Web
Sie tun - Know jeder Kontrolle, die diese Funktionalität bereitstellt? - haben einen Link zu Informationen darüber, wie ich eine solche Funktionalität zu schaffen? - haben Ideen, wie dies zu tun, die Sie teilen können
Lösung
Gefunden folgt aus:
http://www.codeguru.com/cpp/ Kontrollen / Combobox / article.php / c1807 /
Umbenannt die Klasse seit CComboBoxEx ist jetzt Teil von MFC, und fügte eine ShowDropDown () -Aufruf in OnEditUpdate ().
Andere Tipps
Es ist ein Win32-API-FAQ. Siehe Adv. Win32 api ng news: //194.177.96.26/comp.os.ms-windows.programmer.win32 (Sie brauchen nicht alle CBN_EDITCHANGE. Es ist automatisch mit api)
Voller Zugriff auf das Eingabefeld des Kombinationsfelds:
CEdit *pEdit = (CEdit *)pComboBox->GetWindow(GW_CHILD);
CEdit * PEDIT = (CEdit *) pComboBox-> GetWindow (GW_CHILD);
Kann ich Zugriff auf das ListBox Teil in ähnlicher Weise erhalten? Benötigen Sie den Inhalt der Liste zu löschen, beispielsweise mit Resetcontent.
einen Handler für das Ereignis CBN_EDITCHANGE
Geben Sie Ihre Handler jedes Mal, wenn der Benutzer den Text in das Eingabefeld ändert aufgerufen werden Willo.
In diesem Handler, rufen Sie die CComboBox::FindString()
Methode, um zu sehen, ob der eingegebene Text in einem Ihrer Combobox Einträge vorhanden. Ist dies der Fall, rufen Sie CComboBox::SetCurSel()
, um es auszuwählen.