使用Edit Control显示多行文本的方法:
- 首先添加Edit Control:
设置Resource ID: IDC_EDIT_TEXT,名字随意,后面DDX_Control()中一致就行。 - 设置Edit Control properties:
参考:https://www.cnblogs.com/Lthis/p/4948509.html
如果有很多行,Vertical Scroll --> True。 - 为Edit Control绑定CEdit变量
.h
CEdit m_editText;
.cpp
void CIniLoaderDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_EDIT_TEXT, m_editText);
}
参考:https://www.cnblogs.com/Ido-911/p/9921852.html
5.完成以上步骤就可以在编写显示多行文本的代码了:
方法一:
将所有要显示的文本信息存到一个CString对象,记得每行文本后面都要加 “\r\n"。
然后使用**CEdit::SetWindowText(LPCTSTR lpszString)**来显示;
参考:https://blog.csdn.net/weixin_30745553/article/details/97476488
不过,如果在显示部分文本之后,还需要新增其它的文本,需要将要增加的文本加到此前的文本后面。
CString strLine(T_("内容4"));
strLine.Format(_T("第四行: %d;\r\n"), strLine);
strInfo += strLine;
m_editText.SetWindowText(strInfo);
可能存在一个问题,当要显示的文本内容很多的时候,这样的方式会稍微麻烦一些。
方法二:
void CIniLoaderDlg::ShowMultilineText(CEdit &edit, CString &strInfo)
{
int nLen = edit.GetWindowTextLengthW(); // 获取此前已显示的文本长度
edit.SetSel(nLen, nLen); // SetSel到文本末尾
edit.ReplaceSel(strInfo); // 显示要增加显示的文本
}
void Function
{
CString strLine(T_("内容5"));
strLine.Format(_T("第五行: %d;\r\n"), strLine);
ShowMultilineText(m_editText, strLine);
}
如此,就不用每次新增文本内容时,还需要显示先前已显示所有的内容了。
参考:https://www.cnblogs.com/keanuyaoo/p/3265235.html