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

来源:互联网 发布:教孩子学编程 编辑:程序博客网 时间:2024/05/30 04:13

简单概要

使用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.htmCStringA 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下载

下载地址:http://download.csdn.net/detail/kingsollyu/4756923