Comment puis-je obtenir la valeur (chaîne) de la sélection actuelle dans une liste déroulante?
-
20-08-2019 - |
Question
Comment puis-je obtenir la valeur (chaîne) de la sélection actuelle dans une liste déroulante?
(pas l'index entier)
La solution
Il existe peut-être un meilleur moyen (mon MFC est un peu rouillé), mais il semble que vous devriez pouvoir appeler CComboBox::GetLBText()
, en lui transmettant la sélection actuelle à l'aide de CComboBox::GetCurSel()
.
Autres conseils
Un ancien vieux GetWindowText
fonctionne également.
Modifier: Comme le souligne ajryan, CBN_SELCHANGE
en réalité ne ne fonctionne pas dans un gestionnaire WM_COMMAND
, car la nouvelle sélection a pris effet mais le texte de la fenêtre n'a pas été mis à jour avec le texte de la nouvelle sélection lorsque le <=> est envoyé.
Utilisez GetLBText en transmettant l'index et un objet CString.
modifier: trop lent!
CB_GETCURSEL
retourne l'index entier
CB_GETLBTEXT
renvoie la chaîne à <=>