Come posso ottenere il valore (stringa) della selezione corrente in una casella combinata?
-
20-08-2019 - |
Domanda
Come posso ottenere il valore (stringa) della selezione corrente in una casella combinata?
(Non l'indice intero)
Soluzione
Potrebbe esserci un modo migliore (il mio MFC è un po 'arrugginito), ma sembra che dovresti essere in grado di chiamare CComboBox::GetLBText()
, passando la selezione corrente usando CComboBox::GetCurSel()
.
Altri suggerimenti
Anche un semplice vecchio GetWindowText
funziona.
Modifica: Come sottolinea ajryan, CBN_SELCHANGE
in realtà non non funziona in un WM_COMMAND
gestore, perché la nuova selezione ha avuto effetto ma il testo della finestra non è stato aggiornato con il testo della nuova selezione quando viene inviato <=>.
Usa GetLBText, passando l'indice e un oggetto CString.
modifica: troppo lento!
CB_GETCURSEL
restituisce l'indice intero
CB_GETLBTEXT
restituisce la stringa in <=>