MFC Edit Control显示多行文本的方法总结

本文介绍了在MFC中使用CEdit控件显示多行文本的两种方法。首先,通过设置控件属性实现多行显示,然后通过CEdit::SetWindowText显示文本,每次显示前需将新内容追加到已有文本后。第二种方法是使用CEdit的SetSel和ReplaceSel函数,仅追加新的文本,避免重复加载已有内容,提高效率。
摘要由CSDN通过智能技术生成

使用Edit Control显示多行文本的方法:

  1. 首先添加Edit Control:
    设置Resource ID: IDC_EDIT_TEXT,名字随意,后面DDX_Control()中一致就行。
  2. 设置Edit Control properties:
    参考:https://www.cnblogs.com/Lthis/p/4948509.html
    如果有很多行,Vertical Scroll --> True。
  3. 为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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值