【MFC笔记】文件保存对话框的打开和数据保存(将数据保存在文件内)

接前面的列表对话框

在列表框所在的界面新建一个按钮,命名为保存,按钮的事件过程中调用一下数据保存数据文件

void CMyMFCDlg::OnBnClickedSaveButton()//按下保存按钮
{
    TCHAR szFilter[] = _T("文本文件(*.txt)|*.txt|| ");    //在下面实例fileDlg中作为参数使用
    // 构造保存文件对话框
    CFileDialog fileDlg(FALSE, _T("txt"), _T("my"), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter, this);
    /*TRUE为打开文件对话框,FALSE为保存,此处是保存
     _T("txt"),默认文件格式,也可以是_T("doc")或者是_T("xls")
      _T("my"),默认文件名为“my.txt”
     OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,打开文件的方式隐藏文件对话框上的“Read Only”复选框
     以及弹出覆盖文件对话框,可以固定
     szFilter,文件过滤器
     this,文件对话框的父窗口的指针,可以固定*/
     if (IDOK == fileDlg.DoModal())    // 调用DoModal()显示保存文件对话框,如果确认按下执行以下
    {
        CStdioFile  MyFile; //打开文件,上面是打开保存文件对话框,不同
        MyFile.Open(fileDlg.GetPathName(),CFile::modeWrite | CFile::modeRead | CFile::modeCreate);
        /*fileDlg.GetPathName(),获取文件路径;后面的是打开方式*/
        int iRowCount = m_List.GetItemCount();//取得行数
        int iCellCount = m_List.GetHeaderCtrl()->GetItemCount(); //取得列数
        for (int iRow = iRowCount-1; iRow >=0; iRow--)//使用循环嵌套,读出列表中每一个内容
        {
            for (int iCell = 0; iCell < iCellCount; iCell++)
            {
                MyFile.Seek(0, CFile::end);
//找到文件结尾
                MyFile.WriteString(m_List.GetItemText(iRow, iCell)+"\t"); //列表中读取数据,调用WriteString方法写入文件
            }
            MyFile.WriteString(L"\n");
        }
        MyFile.Close();

    }
}

 

文件名MyMfc

最简单的写入

CStdioFile  MyFile; //创建文件实体
MyFile.Open("c:\\test\\myfile.dat",CFile::modeWrite);//打开文件

MyFile.WriteString(m_List.GetItemText(iRow, iCell)+"\t");//写入文件

MyFile.Close();//关闭文件

 

 

C++ MFC中的文件打开保存对话框可以通过CFileDialog类来实现。CFileDialog类是MFC提供的一个对话框类,用于选择文件打开保存操作。 要使用CFileDialog类,首先需要包含头文件<afxdlgs.h>。然后可以创建一个CFileDialog对象,并使用DoModal()函数来显示对话框。 下面是一个简单的示例代码,演示如何使用CFileDialog类来实现文件打开保存对话框: ```cpp #include <afxdlgs.h> // 文件打开对话框示例 void OpenFile() { CFileDialog dlg(TRUE); // 创建一个打开文件对话框 if (dlg.DoModal() == IDOK) // 显示对话框并检查用户是否点击了“打开”按钮 { CString filePath = dlg.GetPathName(); // 获取用户选择的文件路径 // 在这里可以对文件进行处理,比如读取文件内容等 } } // 文件保存对话框示例 void SaveFile() { CFileDialog dlg(FALSE); // 创建一个保存文件对话框 if (dlg.DoModal() == IDOK) // 显示对话框并检查用户是否点击了“保存”按钮 { CString filePath = dlg.GetPathName(); // 获取用户选择的文件路径 // 在这里可以将数据保存文件中 } } ``` 在上面的示例代码中,OpenFile()函数演示了如何使用CFileDialog类来实现文件打开对话框。首先创建一个CFileDialog对象,参数TRUE表示打开文件对话框。然后调用DoModal()函数显示对话框,并检查用户是否点击了“打开”按钮。如果用户点击了“打开”按钮,可以通过GetPathName()函数获取用户选择的文件路径。 SaveFile()函数演示了如何使用CFileDialog类来实现文件保存对话框。与打开对话框类似,首先创建一个CFileDialog对象,参数FALSE表示保存文件对话框。然后调用DoModal()函数显示对话框,并检查用户是否点击了“保存”按钮。如果用户点击了“保存”按钮,可以通过GetPathName()函数获取用户选择的文件路径。 需要注意的是,CFileDialog类还提供了其他一些函数来设置对话框的标题、过滤器、默认文件名等属性,可以根据实际需求进行设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值