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);

返回:用户名 == 空

更新

现在使用:GetDlgItemText()。调试器告诉我 userName = "" 的值

4

1 回答 1

1

文档有一个 C 风格的 Windows 9x 代码示例。

您只需将 C 替换为 C++ 和 Windows 9x 愚蠢的 T 宏wchar_t和朋友。

阅读文档总是一个好主意。

于 2013-02-25T18:07:07.973 回答