【25】MFC入门到精通——MFC静态文本框 中字符串 连续输出 不覆盖先前的文本 换行输出
文章目录
- 1 问题描述
- 2 方法
- 3 实例
1 问题描述
比如我做个循环打开若干个文件 pBuf保存文件内容
或者在静态文本框中,多次输出字符提示信息;
但是打开第二个文件的时候调用SetDlgItemText(IDC_EDIT1,pBuf);
显示在第一行,覆盖了先前的内容,我想让它读取的第二个文件内容在第二行显示!
读第三个文件的内容显示在第三行
2 方法
每次在SetDlgItemText之前都先将旧的文本内容+换行+新的文本内容
如:
CString str;
GetDlgItemText(IDC_EDIT1, str);//获取已显示的文本
str = str + _T("\r\n") + pBuf;//加换行、加新的文本,pBuf即新的文件内容
SetDlgItemText(IDC_Edit1, str);
3 实例
当按下 Button4,在静态框输出,不同i语句下的 字符串信息;
换行输出 不覆盖先前的文本
void CMFCApplication1Dlg::OnBnClickedButton4()
{// TODO: 在此添加控件通知处理程序代码CString str;for (int i = 0; i < 3; i++) {if (i == 0)str = _T("MFC运行或调试在 VS输出框,打印字符串信息");else if (i == 1)str = _T(" == Good");else if (i == 2)str.Format(TEXT("第 %d 次连续输出"), i);CString str2;GetDlgItemText(IDC_STATIC_LOG, str2);//获取已显示的文本str2 = str2 + _T("\r\n") + str;//加换行、加新的文本,ICR_Process_result即新的文件内容SetDlgItemText(IDC_STATIC_LOG, str2);}
}