2009-01-26 7 views

Trả lời

20

Có thể có một cách tốt hơn (MFC của tôi là một chút gỉ), nhưng nó có vẻ như bạn sẽ có thể gọi CComboBox::GetLBText(), đi qua nó là lựa chọn hiện tại sử dụng CComboBox::GetCurSel().

+0

Hmm, hoạt động. Cảm ơn –

+2

Có thể bạn đang nói "Hmm" vì bạn đang cố gắng xem giá trị mới trong trình xử lý CBN_SELCHANGE. Đó là kích hoạt/trước/thay đổi được cam kết, nhưng GetLBText đã có quyền truy cập vào thời điểm này .. –

3

Sử dụng GetLBText, chuyển trong chỉ mục và đối tượng CString.

chỉnh sửa: quá chậm!

0

CB_GETCURSEL trả lại chỉ số nguyên CB_GETLBTEXT lợi nhuận chuỗi tại CB_GETCURSEL

6

Một đồng bằng cũ GetWindowText công trình, quá.

Edit: điểm Như ajryan ra, GetWindowText thực không làm việc trong một handler CBN_SELCHANGE, vì sự lựa chọn mới đã có hiệu lực nhưng các văn bản cửa sổ chưa được cập nhật với nội dung của sự lựa chọn mới khi WM_COMMAND được gửi.

+2

Không có trong ON_CBN_SELCHANGE –

+1

Hmmm. Có vẻ như bạn nói đúng. Tôi đoán tôi chưa bao giờ thử điều đó trước đây. Một chút ngạc nhiên, bởi vì thường có một "thay đổi" thông báo cho trước khi thay đổi được cam kết và một "thay đổi" thông báo cho sau đó, nhưng điều đó dường như không phải là trường hợp cho các hộp combo. – Joel