Comment puis-je obtenir la valeur (chaîne) de la sélection en cours dans une liste déroulante?Comment puis-je obtenir la valeur (chaîne) de la sélection en cours dans une liste déroulante?
(pas l'index entier)
Comment puis-je obtenir la valeur (chaîne) de la sélection en cours dans une liste déroulante?Comment puis-je obtenir la valeur (chaîne) de la sélection en cours dans une liste déroulante?
(pas l'index entier)
Il pourrait y avoir une meilleure façon (mon MFC est un peu rouillé), mais il semble que vous devriez être en mesure d'appeler CComboBox::GetLBText()
, faisant passer la sélection actuelle à l'aide CComboBox::GetCurSel()
.
Utilisez GetLBText en transmettant l'index et un objet CString.
edit: trop lent!
CB_GETCURSEL
retourne l'index entier chaîne CB_GETLBTEXT
de retour à CB_GETCURSEL
A vieux GetWindowText
plaine des œuvres aussi.
Edit: en tant que points ajryan dehors, GetWindowText
fait ne le fait pas travail dans un gestionnaire CBN_SELCHANGE
, parce que 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 WM_COMMAND
est envoyé.
Not in ON_CBN_SELCHANGE –
Hmmm. On dirait que tu as raison. Je suppose que je n'ai jamais essayé ça avant. Un peu surprenant, car il y a généralement une notification «changeante» avant que les modifications ne soient validées et une notification «modifiée» pour la suite, mais cela ne semble pas être le cas pour les combos. – Joel
Hmm, ça marche. Merci –
Vous dites probablement "Hmm" parce que vous essayiez de voir la nouvelle valeur dans un gestionnaire CBN_SELCHANGE. Cela est déclenché/avant/la modification est validée, mais GetLBText a déjà accès à ce point. –