2009-01-26 4 views

Antwort

20

Es könnte einen besseren Weg geben (mein MFC ist ein bisschen rostig), aber es scheint, wie sollte es möglich sein CComboBox::GetLBText() zu nennen, ist es die aktuelle Auswahl CComboBox::GetCurSel() mit geben.

+0

Hmm, das funktioniert. Danke –

+2

Sie sagen wahrscheinlich "Hmm", weil Sie versucht haben, den neuen Wert in einem CBN_SELCHANGE-Handler zu sehen. Das ist ausgelöst/bevor/die Änderung wird festgeschrieben, aber GetLBText hat bereits Zugriff auf diesen Punkt .. –

3

Verwenden Sie GetLBText, übergeben Sie den Index und ein CString-Objekt.

bearbeiten: zu langsam!

0

CB_GETCURSEL der Integer Index CB_GETLBTEXT kehrt String zurück an CB_GETCURSEL

6

A plain old GetWindowText Werke auch.

Edit: Als ajryan weist darauf hin, GetWindowText tatsächlich nicht Arbeit in einem CBN_SELCHANGE Handler, weil der neue Selektionseffekt aber das Fenster Text übernommen wurde mit dem Text der neuen Auswahl nicht aktualisiert, wenn Die WM_COMMAND wird gesendet.

+2

Nicht in ON_CBN_SELCHANGE –

+1

Hmmm. Sieht aus, als hättest du recht. Ich glaube, ich habe das noch nie zuvor probiert. Ein wenig überraschend, denn es gibt normalerweise eine "sich ändernde" Benachrichtigung für bevor Änderungen festgeschrieben werden und eine "geänderte" Benachrichtigung für später, aber das scheint nicht der Fall zu sein für Kombinationsfelder. – Joel

Verwandte Themen