开发者

Passing the value of vector string to the win32 Function SetWindowText in C++

How could i pass the value of vector string to the win32 Function SetWindowText in C++.

so far this is my cod开发者_StackOverflow社区e for that:

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


You could concatenate them all into one string and pass that as a 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());


First off, you seem to be trying to insert a list of strings into SetWindowText.

since each window can only have one title, SetWindowText cannot process a list. Instead, you should retrieve a single string from the list, and use it as a parameter to SetWindowText

string windowText = filelist[0];

The documentation from SetWindowText reveals that the function expects a LPCTSTR lpString.

Since all we have right now is a string, we have to use

LPCTSTR title = windowText.c_str();

It is possible that this line will not compile with the following error message :
cannot convert from 'const char *' to 'LPCTSTR'
You will have to change the default character set in your project. Here is how you do it

Finally you can call

SetWindowText(EditShow,title);

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜