我正在尝试实现一个显示文件名的工具。 我想通过使用SetWindowText()方法来做到这一点。 但是,当我试图在循环中使用此方法时, 文本显示在一行中,并不断刷新。
这是代码段
for (int i = 0; i<10; i++)
{
SetWindowText(filenames);
}
请帮忙。感谢。
答案 0 :(得分:8)
SetWindowText
用您提供的字符串替换当前窗口文本
因此,如果要显示多行,首先必须创建一个多行字符串。
一个简单的例子:
CStringArray names;
// Fill names
CString str;
for (INT_PTR i = 0; i < names.GetCount() ; ++i)
{
str += names[i] + _T("\r\n");
}
c_MyEdit.SetWindowText(str);
答案 1 :(得分:2)
另一种经过时间考验的方法是一次显示多个名称是列表框。 MFC为CListBox类提供了一个很好的包装器(参见http://msdn.microsoft.com/en-us/library/y04ez4c9%28v=vs.80%29.aspx)。如果列表很长,这具有可滚动和(可选)可排序的附加好处。