MFC在“编辑控件”框中显示多行文本

时间:2012-01-19 06:32:24

标签: visual-c++ mfc

我正在尝试实现一个显示文件名的工具。 我想通过使用SetWindowText()方法来做到这一点。 但是,当我试图在循环中使用此方法时, 文本显示在一行中,并不断刷新。

这是代码段

for (int i = 0; i<10; i++)
{
  SetWindowText(filenames);
}

请帮忙。感谢。

2 个答案:

答案 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)。如果列表很长,这具有可滚动和(可选)可排序的附加好处。