MFC中如何打开一个文本文件并把内容显示到文本编辑框中

在MFC中打开文本文件并显示到对话框的文本编辑框涉及步骤包括:创建对话框应用,添加文本编辑框并关联变量,使用CFileDialog打开文件对话框,选择文件后读取内容,将内容存储到字符数组并转换为CString,最后将内容设置到文本编辑框中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      关于在MFC中如何打开一个文本文件并把内容显示到文本编辑框中,下面简要介绍一下相关步骤。
a. 首先建立一个基于对话框的MFC应用。(相关过程略)
b. 在对话框中添加一个文本编辑框,右键点击文本编辑框,选择添加变量(填写变量名称,例如m_Edit),注意添加的变量类别是控件类别,变量类型CEidt。后边用这个变量代表文本编辑框。
c. 为选择准备打开文件的路径及文件名,声明一个文件对话框类对象(例:dlg)并利用构造函数对其进行初始设置:
CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY ,"All Files(*.TXT)|*.TXT||", AfxGetMainWnd());
   参1:为TRUE则显示打开文件对话框,为FALSE则显示保存文件对话框
   参2:指定默认的文件文件扩展名,可以为NULL
   参3:指定默认的文件名,可以为NULL
   参4:隐藏只读复选框
   参5:指明可供选择的文件类型和相应的扩展名
   参6:父窗口指针
d. 调用dlg的成员函数DoMaldal()显示文件对话框并进行文件选择。
e. 声明一个CString对象strOpenFile用于存储在dlg中选中的文件路径、文件名:strOpenfile=dlg.GetPathName();
f. 声明一个文件类对象并利用其构造函数将前面的文件路径、文件名作为参数传入将文件打开。
     CFile file(strOpenFile,CFile::modeRead);
      参1:文件路径及文件名
      参2:打开方式,这里是只读方式
g. 定义一个字符数组用于暂存从文件中读取的内容(例如 char read[1024]),然后调用file的成员函数将打开文件的内容读取到Read中: file.Read(read,file.GetLength()); // file.GetLength()--读取的长度
h. 声明一个CString对象txtRead用于转存read中的内容:
    for (int i = 0; i < file.GetLength(); i++)
    {  txtRead += read[i];  }
i. 将读取内容显示到文本编辑框中:
      m_Edit.SetWindowText(txtRead);
i. 关闭打开的文件file.close();
      说明:如保存的文件用其它工具打开时出现异常,请选用“多字节字符集”。

MFC打开文件和文件夹 一、利用API实现打开文件对话框和利用MFC来实现打开文件对话框。 方法一:API部分: // OPENFILENAME ofn; // TCHAR szFile[MAX_PATH]; // ZeroMemory(&ofn,sizeof(ofn)); // ofn.lStructSize = sizeof(ofn); // ofn.lpstrFile = szFile; // ofn.lpstrFile[0] = TEXT('/0'); // ofn.nMaxFile = sizeof(szFile); // ofn.lpstrFilter = TEXT("all/0*.*/0jpg/0*.jpg/0bmp/0*.bmp/0"); //定义三个选项,all,text和exe // ofn.nFilterIndex = 1; //定义首选项是哪一个 // ofn.lpstrFileTitle = NULL; // ofn.nMaxFileTitle = 0; // ofn.lpstrInitialDir = NULL; // ofn.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; // if(GetOpenFileName(&ofn)) // { // ::SetDlgItemText(this->m_hWnd,IDC_EDIT1,szFile); // } 方法二、MFC实现 // CFileDialog dlg(TRUE, NULL, NULL, // OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, // NULL); // // if(dlg.DoModal() == IDOK) // { // szFilename = dlg.GetPathName(); // ::MessageBox(NULL,szFilename,NULL,MB_OK); // } 注意:打开文件的方式和打开文件夹的方式是不同的。打开文件的方式是不断的打开直到出现末端为文件,否则遇到文件夹还要继续打开。而打开文件夹则是只要选择到一个路径的文件夹就打开。 下面的这种方式是打开文件夹:MFC实现。 static TCHAR strDirName[MAX_PATH]; BROWSEINFO bi; CString szString = TEXT("选择一个源文件子文件夹"); bi.hwndOwner = ::GetFocus(); bi.pidlRoot = NULL; bi.pszDisplayName = strDirName; bi.lpszTitle = szString; bi.ulFlags = BIF_BROWSEFORCOMPUTER | BIF_DONTGOBELOWDOMAIN | BIF_RETURNONLYFSDIRS; bi.lpfn = NULL; bi.lParam = 0; bi.iImage = 0; LPITEMIDLIST pItemIDList = ::SHBrowseForFolder(&bi); if(pItemIDList == NULL) { return ; } ::SHGetPathFromIDList(pItemIDList, strDirName); CString str = strDirName; if(str != "" && str.Right(1) != '//') str += '//'; ::SetDlgItemText(this->m_hWnd,IDC_EDIT1,str);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值