将向量字符串的值传递给C ++中的win32函数SetWindowText

时间:2011-03-15 08:44:07

标签: c++ winapi

我怎样才能将vector string的值传递给C ++中的win32 Function SetWindowText。

到目前为止,这是我的代码:

vector <string> filelist;
string path;
path = Text;
filelist = GetPath(path);
SetWindowText(EditShow,filelist);

2 个答案:

答案 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);