Win32 C ++从元素中获取文本

时间:2013-02-25 17:34:25

标签: c++ winapi selectlist

虽然这个问题可能已经被问过一千次了(很确定,我已经阅读了一千个答案)。我仍然没有得到它。

假设我有一个创建这样的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 ++(微软视觉工作室)中实现这一目标?

修改

我用过的代码:

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

返回:userName == empty

更新

现在使用:GetDlgItemText()。调试器告诉我userName =“”

的值

1 个答案:

答案 0 :(得分:1)

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

您需要简单地用C {+ 1 +}和朋友替换C ++和Windows 9x傻T宏。

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