エディットボックスに文字列を貼り付けることをしたいのですが、
list_bufからedit_bufに文字列をコピーする際に最初の要素しかコピーされません。
以下簡略化したソースです。
よろしくおねがいします。
usingspace std;
vector<string> edit_buf;
vector<string> list_buf;
string str;
// list_bufをedit_bufにコピー
for(int i = 0; i < list_buf.size(); i++ ){
str = listbuf[i];
edit_buf.push_back(str);
edit_buf.push_back("\r\n");
}
// エディットボックスに文字列をセット
SetDlgItemText( hDlgWnd, IDC_EDIT1, (LPTSTR)edit_buf[0].c_str() );
こういうことですか?
string edit_buf;
vector<string> list_buf;
for (int i = 0; i < list_buf.size(); i++) {
edit_buf += list_buf[i] + "\r\n";
}
SetDlgItemText(hDlgWnd, IDC_EDIT1, edit_buf.c_str());
↓こんなのはいかがでしょ。
std::ostringstream stream;
std::copy(list_buf.begin(), list_buf.end(), std::ostream_iterator<std::string>(stream,"\r\n"));
SetDlgItemText(hDlgWnd,IDC_EDIT1, stream.str().c_str());
ツイート | ![]() |