Wie bekomme ich den Wert (string) von der aktuellen Auswahl in eine combobox?
Wie bekomme ich den Wert (string) von der aktuellen Auswahl in eine combobox?
(Nicht der integer-index)
InformationsquelleAutor | 2009-01-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es vielleicht einen besseren Weg (mein MFC ist ein wenig eingerostet), aber es scheint, wie Sie sollten in der Lage sein zu rufen
CComboBox::GetLBText()
auf, übergeben Sie die aktuelle Auswahl mitCComboBox::GetCurSel()
.Du bist wahrscheinlich sagen "Hmm", weil Sie versuchten, den neuen Wert in eine CBN_SELCHANGE-handler. Das ist ausgelöst /vor/ wird die änderung übernommen, aber GetLBText hat bereits Zugriff an dieser Stelle..
InformationsquelleAutor Andy
Einem plain old
GetWindowText
funktioniert es auch.Edit: Als ajryan Punkte aus,
GetWindowText
eigentlich nicht Arbeit in einemCBN_SELCHANGE
- handler, weil Sie die neue Auswahl übernommen hat Wirkung, aber das Fenster text wurde nicht aktualisiert, mit dem text der neuen Auswahl bei derWM_COMMAND
gesendet wird.Hmmm. Sieht aus wie du Recht hast. Ich denke, ich habe nie versucht, vor. Ein wenig überraschend, denn normalerweise gibt es einen "ändern" - Benachrichtigung für die vor änderungen verpflichtet sind, und eine "geändert" - Benachrichtigung für danach, aber das scheint nicht der Fall zu sein für combo-Boxen.
InformationsquelleAutor Joel
Verwenden GetLBText, vorbei in den index und ein CString-Objekt.
edit: zu langsam!
InformationsquelleAutor Joe
CB_GETCURSEL
Rückkehr der integer-indexCB_GETLBTEXT
gibt die ZeichenketteCB_GETCURSEL
InformationsquelleAutor Michael