[c][WinApi] Combobox : détecter le changement d'item

Résolu
acryline Messages postés 33 Date d'inscription dimanche 14 mai 2006 Statut Membre Dernière intervention 16 décembre 2006 - 16 déc. 2006 à 16:00
acryline Messages postés 33 Date d'inscription dimanche 14 mai 2006 Statut Membre Dernière intervention 16 décembre 2006 - 16 déc. 2006 à 16:41
Bonjour

 Pour une combobox, les messages CBN_EDITCHANGE ou CBN_EDITUPDATE sont bien envoyés quand le texte du contrôle d'édition est modifié au clavier mais pas quand il est modifié par la sélection d'un item dans la liste déroulante ... et j'aimerais détecter cette modification.
Ce changement est pris en compte uniquement quand je sélectionne un autre contrôle avec le message CBN_KILLFOCUS... mais il faut que mon programme détecte le changement d'item sans attendre la sélection d'un autre contrôle.

Mon code aurait la forme suivante :

  if(HIWORD(wParam)==CBN_EDITCHANGE)
  {
    if(lParam==p_controle->hCombo[2])
    {
        //trouver le nouvel item et faire les modifications adaptées.
    }
  }

Enfin l''item détecté avec CBN_SELCHANGE est l'ancien item et non le nouveau.
 Qui sait comment faire  pour détecter le nouvel item  ?
Merci ;)

2 réponses

yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
16 déc. 2006 à 16:10
CBN_SELCHANGE et recup index avec CB_GETCURSEL
3
acryline Messages postés 33 Date d'inscription dimanche 14 mai 2006 Statut Membre Dernière intervention 16 décembre 2006
16 déc. 2006 à 16:41
Merci beaucoup ! je trournais en rond depuis un moment. Avec la fonction GetWindowText  ça ne marche pas mais en envoyant CB_GETCURSEL ça marche !

Donc voici mon code complété grace à  yann_lo_san :
if(HIWORD(wParam)==CBN_SELCHANGE)
  {
    if(lParam==p_controle->hCombo[2])
    {
        item =SendMessage(p_controle->hCombo[2],CB_GETCURSEL,0,0);
        SendMessage(p_controle->hCombo[2],CB_GETLBTEXT,item,texte);
    // faire mes modifications adaptées au nouvel item
       }

encore merci
0
Rejoignez-nous