虽然这个问题可能被问过一千次之前(很确定它,我已经读了一千个答案)。我仍然不明白。Win32 C++从元素中获取文本
可以说,我有一个创建一个像这样的组合框的功能:
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++中实现这一++(微软的Visual Studio)?
编辑
码我用:
char userName[_MAX_PATH+1];
GetDlgItemTextW(scopeComboSelector,
IDCC_DROPDOWNLIST_SCOPE_SELECTOR,
(LPWSTR)userName,
200);
返回:用户名==空
更新
现在使用:GetDlgItemText()。调试器告诉我的值userName =“”
请发布您尝试过的方式的代码,以及您得到的确切错误。这听起来像你在某个时候可能有正确的答案,但只是没有正确处理字符串。如果您发布该信息,则可能有人可能会向您显示您出错的位置。 – JBentley 2013-02-25 17:37:58
看起来你正在使用一个'char'数组,它需要unicode。尝试'GetDlgItemText'而不是'GetDlgItemTextW',或者使用宽字符而不是char。另外,请发布编译器错误。 – JBentley 2013-02-25 17:42:14
可能的重复http://stackoverflow.com/questions/7262644/get-the-text-of-a-combo-box-win32-api-c-no-mfc – Rich 2013-02-25 17:42:54