虽然这个问题之前可能已经被问过一千次(我很确定我已经阅读了一千个答案)。我还是不明白。
假设我有一个函数可以创建一个像这样的 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 = "" 的值