20

コンボボックスで現在選択されている値 (文字列) を取得するにはどうすればよいですか?

(整数インデックスではありません)

4

7 に答える 7

29

より良い方法があるかもしれません (私の MFC は少し錆びていますCComboBox::GetLBText()) CComboBox::GetCurSel()

于 2009-01-26T20:49:59.490 に答える
9

昔ながらのGetWindowText作品も。

編集: ajryan が指摘するように、ハンドラーではGetWindowText実際には機能しません。これは、新しい選択が有効になったが、ウィンドウのテキストが送信されCBN_SELCHANGEたときに新しい選択のテキストで更新されていないためです。WM_COMMAND

于 2009-01-26T21:51:56.853 に答える
5

GetLBText を使用して、インデックスと CString オブジェクトを渡します。

編集:遅すぎる!

于 2009-01-26T20:54:28.840 に答える
0

CB_GETCURSEL整数インデックス CB_GETLBTEXTを返します文字列を返しますCB_GETCURSEL

于 2009-01-26T20:59:56.350 に答える
0

これにはいくつかのアプローチがあります。


変数にマップ

コンボを使用すると、それを変数にマップできます。

  • コンボがドロップ リストの場合は、int.
  • コンボがドロップダウンの場合、それはCString.

直接アクセス

他の人が言ったように、コンボがドロップダウンの場合、2 つのコントロール (リストと編集) があると考えることができます。使用GetWindowText編集コントロール テキストにアクセスします。


マクロの使用

使用できるヘルパー マクロは多数あります。そして、テキストを取得するためのもの(ComboBox_GetTextマクロ)があります。コントロールを変数にマップする必要がなくなります。

それは本当にあなたのニーズとコンボコントロールの使い方に依存します.

于 2021-11-17T08:09:38.140 に答える