0

この質問はおそらく以前に何千回も尋ねられていますが(私は千回の回答を読んだことは間違いありません). まだわかりません。

次のような ComboBox を作成する関数があるとします。

  scopeComboSelector=CreateCombobox(hwnd,
                                    GetModuleHandle(0),
                                    CBS_DROPDOWNLIST,
                                    re,
                                    IDCC_DROPDOWNLIST_SCOPE_SELECTOR,
                                    _T("Scopes"));

ここで、「re」は配置用の四角形です。IDCC_DROPDOWNLIST_SCOPE_SELECTOR (かなり長い名前) はコンボボックスの ID です。ポイントは、この「ドロップダウン選択リスト」に実際に入力できることですが、現在選択されている値を文字列として簡単に取得する方法についてはわかりません。

私はそれを行う約10の方法を見てきましたが、すべてすぐにエラーが発生します(LPWSTRに変換する必要があります->結果を修正すると、さらに恐怖になります)。

たぶん、私はJavaに慣れているだけで、次のように簡単に言うことができます:

 textfield.getText();

Win32 C++ (Microsoft Visual Studio) でこれをどのように達成しますか?

編集

私が使用したコード:

  char userName[_MAX_PATH+1];
  GetDlgItemTextW(scopeComboSelector,
                  IDCC_DROPDOWNLIST_SCOPE_SELECTOR,
                 (LPWSTR)userName,
                  200);

戻り値: userName == 空

アップデート

現在使用中: GetDlgItemText()。デバッガーは userName = "" の値を教えてくれます

4

1 に答える 1

1

ドキュメントには、CスタイルのWindows9xコード例があります。

CをC++に、Windows9xのばかげたTマクロをwchar_t仲間に置き換えるだけです。

ドキュメントを読むことは常に良い考えです。

于 2013-02-25T18:07:07.973 に答える