2008-12-05 6 views
4

J'ai besoin d'une zone de liste déroulante dans une application Windows MFC disposant 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 doit dérouler et afficher ces éléments. Un peu comme les boîtes de recherche populaires basées sur ajax sur le webComment créer une zone de liste déroulante MFC avec la recherche

Avez-vous - Connaissez-vous un contrôle qui offre cette fonctionnalité? - avez un lien vers des informations sur la façon de créer une telle fonctionnalité moi-même? - avez des idées sur la façon de faire cela que vous pourriez partager?

Répondre

0

Fournir un gestionnaire pour l'événement CBN_EDITCHANGE, votre gestionnaire sera appelé chaque fois que l'utilisateur modifie le texte dans le champ d'édition.

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

0

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

0

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

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

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

Puis-je avoir accès à la partie ListBox d'une manière similaire? Nécessité de supprimer le contenu de la liste, par ex. en utilisant ResetContent.

Questions connexes