我怎样才能将vector string的值传递给C ++中的win32 Function SetWindowText。
到目前为止,这是我的代码:vector <string> filelist;
string path;
path = Text;
filelist = GetPath(path);
SetWindowText(EditShow,filelist);
答案 0 :(得分:5)
您可以将它们连接成一个字符串并将其作为c-string传递:
#include <sstream> // for std::stringstream
#include <algorithm> // for std::copy
#include <iterator> // for std::ostream_iterator
std::stringstream buffer;
std::copy(filelist.begin(), filelist.end(),
std::ostream_iterator<std::string>(buffer, "\n");
SetWindowText(EditShow,buffer.str().c_str());
答案 1 :(得分:1)
首先,您似乎试图将一个字符串列表插入到SetWindowText中。
由于每个窗口只能有一个标题,因此SetWindowText无法处理列表。相反,您应该从列表中检索单个字符串,并将其用作SetWindowText的参数
string windowText = filelist[0];
来自SetWindowText的文档显示该函数需要LPCTSTR lpString
。
由于我们现在拥有的只是string
,我们必须使用
LPCTSTR title = windowText.c_str();
此行可能无法使用以下错误消息进行编译:
无法从'const char *'转换为'LPCTSTR'
您必须更改项目中的默认字符集。 Here is how you do it
最后你可以打电话给
SetWindowText(EditShow,title);