コンボボックスで現在選択されている値 (文字列) を取得するにはどうすればよいですか?
(整数インデックスではありません)
より良い方法があるかもしれません (私の MFC は少し錆びていますCComboBox::GetLBText()
) CComboBox::GetCurSel()
。
昔ながらのGetWindowText
作品も。
編集: ajryan が指摘するように、ハンドラーではGetWindowText
実際には機能しません。これは、新しい選択が有効になったが、ウィンドウのテキストが送信されCBN_SELCHANGE
たときに新しい選択のテキストで更新されていないためです。WM_COMMAND
GetLBText を使用して、インデックスと CString オブジェクトを渡します。
編集:遅すぎる!
CB_GETCURSEL
整数インデックス
CB_GETLBTEXT
を返します文字列を返しますCB_GETCURSEL
これにはいくつかのアプローチがあります。
コンボを使用すると、それを変数にマップできます。
int
.CString
.他の人が言ったように、コンボがドロップダウンの場合、2 つのコントロール (リストと編集) があると考えることができます。使用GetWindowText
編集コントロール テキストにアクセスします。
使用できるヘルパー マクロは多数あります。そして、テキストを取得するためのもの(ComboBox_GetText
マクロ)があります。コントロールを変数にマップする必要がなくなります。
それは本当にあなたのニーズとコンボコントロールの使い方に依存します.