2009-01-26 10 views

Odpowiedz

20

Nie może być lepszy sposób (mój MFC jest nieco zardzewiały), ale wydaje się, że powinien być w stanie zadzwonić CComboBox::GetLBText(), przekazując jej bieżące zaznaczenie używając CComboBox::GetCurSel().

+0

Hmm, to działa. Dzięki –

+2

Prawdopodobnie mówisz "Hmm", ponieważ próbujesz zobaczyć nową wartość w procedurze CBN_SELCHANGE. To jest wyzwalane/przed/zmiana jest zatwierdzana, ale GetLBText ma już dostęp w tym momencie .. –

3

Użyj GetLBText, przekazując indeks i obiekt CString.

edytowanie: za wolno!

0

CB_GETCURSEL powrót indeksu Integer CB_GETLBTEXT powraca ciąg na CB_GETCURSEL

6

zwykły starych GetWindowText roboty, też.

Edit: punktów ajryan się, GetWindowText faktycznie nie pracę w CBN_SELCHANGE obsługi, ponieważ nowy wybór dokonało ale tekst okno nie zostało zaktualizowane z tekstem nowego zaznaczenia, gdy WM_COMMAND zostaje wysłany.

+2

Nie w ON_CBN_SELCHANGE –

+1

Hmmm. Wygląda na to, że masz rację. Chyba nigdy wcześniej tego nie próbowałem. Trochę zaskakujące, ponieważ zazwyczaj istnieje powiadomienie "zmieniające", zanim zmiany zostaną zatwierdzone i "zmienione" powiadomienie na później, ale wydaje się, że nie ma to miejsca w przypadku pól złożonych. – Joel

Powiązane problemy