使用SendMessage获取垃圾以填充列表框

时间:2016-07-07 16:33:55

标签: c++ windows winapi listbox sendmessage

我正在尝试在Visual Studio上使用c ++填充列表框。我有一个std:string数组,我想使用它们。我的解决方案似乎不起作用:

std::string label = "something";
char *buffer;
buffer = _strdup((label).c_str());

我检查过,缓冲区变量包含正确的字符串,但后来我调用了SendMessage

SendMessage(hwndList, LB_ADDSTRING, 0, (LPARAM)buffer);

ListBox被填充,但我没有看到“东西”,而是看到一些随机的日文字符......

1 个答案:

答案 0 :(得分:1)

SendMessage是一个宏,可以定义为SendMessageW,它使用Unicode字符串。

您正在使用std::stringchar,因此请尝试使用明确使用ANSI字符串的SendMessageA