我正在尝试在 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 已填充,但我看到的不是“某物”,而是一些随机的日文字符...
最佳答案
SendMessage
是一个宏,可以定义为SendMessageW
,使用Unicode字符串。
您正在使用 std::string
和 char
,因此请尝试使用 SendMessageA
,它明确地使用 ANSI 字符串。
关于c++ - 使用 SendMessage 获取垃圾来填充列表框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38250843/