Question

J'ai besoin d'une liste déroulante dans une application Windows MFC dotée d'une fonction de recherche. Cela devrait fonctionner de sorte que si vous commencez à taper quelque chose qui correspond à un ou plusieurs éléments de la liste, la liste déroulante devrait dérouler et afficher ces éléments. Un peu comme les champs de recherche populaires basés sur ajax sur le Web

est-ce que vous - connaissez-vous un contrôle fournissant cette fonctionnalité? - avoir un lien vers des informations sur la manière de créer cette fonctionnalité moi-même? - avez-vous des idées sur la façon de faire cela que vous pourriez partager?

Était-ce utile?

La solution

trouvé ceci:

http://www.codeguru.com/cpp/ contrôles / combobox / article.php / c1807 /

a renommé la classe car CComboBoxEx fait maintenant partie de MFC et a ajouté un appel ShowDropDown () à OnEditUpdate ().

Autres conseils

C’est une FAQ Win32 api. Voir Adv. Win32 api ng news: //194.177.96.26/comp.os.ms-windows.programmer.win32 (vous n'avez pas du tout besoin de CBN_EDITCHANGE. C'est automatique avec api)

Accès complet à la zone d'édition de la liste déroulante:

CEdit *pEdit = (CEdit *)pComboBox->GetWindow(GW_CHILD);
  

CEdit * pEdit = (CEdit *) pComboBox - > GetWindow (GW_CHILD);

Puis-je accéder à la partie ListBox de la même manière? Besoin d'effacer le contenu de la liste, par exemple en utilisant ResetContent.

Fournissez un gestionnaire pour l'événement CBN_EDITCHANGE . Votre gestionnaire sera & # 246; être appelé à chaque fois que l'utilisateur change le texte dans le champ de saisie.

Dans ce gestionnaire, appelez la méthode CComboBox :: FindString () pour voir si le texte saisi existe dans l'une de vos entrées de liste déroulante. Si tel est le cas, appelez CComboBox :: SetCurSel () pour le sélectionner.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top