[每日一学]MFC学习笔记——读取文本文档

16 篇文章 2 订阅
8 篇文章 1 订阅

简单概要

使用MFC来读取硬盘中的文本文档。

预备知识

会C++语法即可

具体步骤

新建工程

新建工程名为 ReadTextFile,使用  unicode   编码方式并将界面调整为如下图所示:

添加事件

为按钮“..."添加单机事件,可以直接双击按钮即可添加。

添加代码

void CReadTextFileDlg::OnBnClickedButton1()
{

	//------------------------------------------------------------------------------
	// CFileDialog类具体详解:http://baike.baidu.com/view/1298552.htm
	//------------------------------------------------------------------------------
	CFileDialog fDlg(TRUE, _TEXT("txt"), NULL, 4|2,
		_TEXT("文本文件(*.txt,*.ini,*.log)|*.txt;*.ini;*.log|全部文件(*.*)|*.*||"));

	// 调用 DoModal() 方法来打开对话框
	if (fDlg.DoModal() == IDOK)
	{
		// 设置编辑框1的内容为选择文件的路径
		// GetPathName() --> 返回选定文件的完整路径
		SetDlgItemText(IDC_EDIT1,fDlg.GetPathName());

		//------------------------------------------------------------------------------
		// CFile类具体详解:http://baike.baidu.com/view/994710.htm
		//------------------------------------------------------------------------------
		CFile fFile(fDlg.GetPathName(),CFile::modeRead);

		// 因为在Windows下常用的文本保存编码为ANSI
		// 而本工程在当初选择的时候选择了Unicode环境
		// 所以需要使用CStringA类型的变量。
		// CStringA具体详解:http://baike.baidu.com/view/998109.htm
		CStringA strFile ;

		// 读取打开文件内容
		// 第一个参数:读取内容的缓冲区域
		// 第二个参数:读取内容的长度
		fFile.Read(strFile.GetBufferSetLength(fFile.GetLength()),fFile.GetLength());

		// 关闭文件句柄
		fFile.Close();

		// 释放缓冲区域
		strFile.ReleaseBuffer();

		// 因环境为Unicdoe的原因,CStringA不可以直接显示到界面控件上
		// 所以使用CString转换为Unicdoe字符
		SetDlgItemText(IDC_EDIT2,CString(strFile));
	}
}

编译运行

重点要点

此篇文章重点是了解MFC中常用的一些类的用法。

课后练习

可以尝试使用 CFileDialog 来打开一个文件。

Demo下载



  • 18
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值