VC文件操作:保存文件对话框 OPENFILENAME 代码

本文介绍了一个使用C++实现的文件保存对话框功能,重点在于如何通过`GetSaveFileName`函数来创建一个带有文件重名提示的保存对话框,并展示了如何将编辑器中的文本内容写入指定的文本文件中。


void COpenDlg::OnSave() 
{
        CString strPath,strText="";
        char write[30000];
        OPENFILENAME ofn;
        ZeroMemory(&ofn,sizeof(ofn));
        ofn.lStructSize=sizeof(ofn);
        ofn.hwndOwner=this->GetSafeHwnd();
        ofn.lpstrFilter="All Files(*.txt)\0*.txt\0\0";
        ofn.lpstrCustomFilter=NULL;
        ofn.nFilterIndex=0;
        char filename[128];
        filename[0]='\0';
        ofn.lpstrFile=filename;
        ofn.nMaxFile=128;
        ofn.lpstrFileTitle=NULL;
        ofn.lpstrInitialDir=NULL;
        ofn.lpstrTitle="保存文本文件\0";
        ofn.Flags=OFN_FILEMUSTEXIST|OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT;
        ofn.lpstrDefExt=NULL;
        if(GetSaveFileName(&ofn)==0)
                return;
        strPath=filename;
        if(strPath.Right(4)!=".txt")
                strPath+=".txt";
        CFile file(_T(strPath),CFile::modeCreate|CFile::modeWrite);
        m_Edit.GetWindowText(strText);
        strcpy(write,strText);
        file.Write(write,strText.GetLength());
        file.Close();
        MessageBox("保存完成!","保存提示");        
}


运行效果如下:






      若保存时文件已经存在,重名,则提示是否替换。

加入:OFN_OVERWRITEPROMPT才有文件重名替换提示。替换后,原文件内容全无,为保存的最新内容。


OFN_OVERWRITEPROMPT(来自MSDN)     

     Causes the Save As dialog box to generate a message box if the selected file already exists. The user must confirm whether to overwrite the file.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

zhangsz_sh

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

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

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

打赏作者

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

抵扣说明:

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

余额充值