虽然这个问题可能已经被问过一千遍了(非常确定,但我已经阅读了一千个答案)。我还是不明白。

可以说我有一个创建像这样的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 =“”的值

最佳答案

documentation具有C样式的Windows 9x代码示例。

您只需要用wchar_t和好友用C ++和Windows 9x傻T宏替换C。

阅读文档始终是一个好主意。

10-05 20:01