MFC--文本的保存与读取

前言

        通过C++的MFC实现两个功能

        1.通过键盘输入保存到text文本文件中,

        2.能够读取text文本文件的内容,并显示到窗口上

创建工程

添加消息

 

添加变量

CTestDoc

CTestView

编辑消息

CTestDoc

CTestDoc::CTestDoc()

CTestDoc::CTestDoc()
{
	// TODO: add one-time construction code here
	flag=0;
}

 void CTestDoc::Serialize(CArchive& ar)

void CTestDoc::Serialize(CArchive& ar)
{

	if (ar.IsStoring())
	{
		// TODO: add storing code here
		//保存
		
		ar<<str;
		flag=0;
	}
	else
	{
		//读取
		// TODO: add loading code here
		ar>>str;
		flag=1;
	}
}

CTestView

CTestView::CTestView()

CTestView::CTestView()
{
	// TODO: add construction code here
	flag1=0;
}

void CTestView::OnDraw(CDC* pDC)

void CTestView::OnDraw(CDC* pDC)
{
	CTestDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
	//不同类的成员
	//将窗口类的成员的值传到文本类
	
	if(flag1==0){
		if(pDoc->flag==1)
			str1=pDoc->str;
			
	}else{
		pDoc->str=str1;
	}
	
	pDC->TextOut(0,0,str1);
	
}

void CTestView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)

void CTestView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
	// TODO: Add your message handler code here and/or call default
	str1+=nChar;
	flag1=1;
	this->Invalidate();
	CView::OnChar(nChar, nRepCnt, nFlags);
}

运行

保存

 

 读取

 

 

 

 

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
好的,下面是一个简单的实现: 首先,在MFC中创建一个对话框应用程序,然后在对话框中添加一个列表控件(ID为IDC_LIST1)。 接下来,在对话框类的头文件(比如MyDlg.h)中添加以下成员变量和成员函数: ```cpp // 成员变量 CString m_strFilePath; // 文件路径 CListCtrl m_listCtrl; // 列表控件 // 成员函数 afx_msg void OnBnClickedButtonAdd(); // 添加按钮的响应函数 afx_msg void OnBnClickedButtonRead(); // 读取按钮的响应函数 ``` 在OnInitDialog()函数中添加以下代码: ```cpp // 初始化文件路径为空 m_strFilePath.Empty(); // 初始化列表控件 m_listCtrl.Attach(GetDlgItem(IDC_LIST1)->GetSafeHwnd()); m_listCtrl.InsertColumn(0, _T("Content"), LVCFMT_LEFT, 200); ``` 这里,我们使用Attach()函数将m_listCtrl与IDC_LIST1控件关联,并使用InsertColumn()函数为列表控件添加一列,列标题为“Content”,宽度为200像素,对齐方式为左对齐。 然后,在对话框类的源文件(比如MyDlg.cpp)中实现OnBnClickedButtonAdd()和OnBnClickedButtonRead()函数: ```cpp void CMyDlg::OnBnClickedButtonAdd() { // 打开文件对话框,获取文件路径 CFileDialog dlg(TRUE, NULL, NULL, OFN_FILEMUSTEXIST | OFN_READONLY, _T("Text Files (*.txt)|*.txt|All Files (*.*)|*.*||"), this); if (dlg.DoModal() == IDOK) { m_strFilePath = dlg.GetPathName(); // 保存文件路径 // 打开文件读取数据并添加到列表控件中 CStdioFile file; if (file.Open(m_strFilePath, CFile::modeRead)) { CString strLine; while (file.ReadString(strLine)) { m_listCtrl.InsertItem(0, strLine); } file.Close(); } } } void CMyDlg::OnBnClickedButtonRead() { // 清空列表控件 m_listCtrl.DeleteAllItems(); // 打开文件读取数据并添加到列表控件中 CStdioFile file; if (file.Open(m_strFilePath, CFile::modeRead)) { CString strLine; while (file.ReadString(strLine)) { m_listCtrl.InsertItem(0, strLine); } file.Close(); } } ``` 这里,我们使用CFileDialog类打开文件对话框,让用户选择要添加或读取数据文件。然后,我们使用CStdioFile类打开文件,并逐行读取数据,将其添加到列表控件中。注意,我们在添加之前要先清空列表控件,以免重复添加数据。 在OnBnClickedButtonRead()函数中,我们先清空列表控件,然后再将数据添加到列表控件中。这里,我们使用InsertItem()函数将每一行数据都插入到列表控件的第一行。 最后,在对话框类的头文件中添加以下宏定义: ```cpp #define IDC_LIST1 1000 ``` 这里,我们给列表控件一个ID号,以便在对话框中创建列表控件时使用。 这样,我们就完成了一个简单的基于对话框的添加和读取文本文件数据的程序,并将数据显示在CListCtrl控件上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ML.star

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值