MFC学习教程之(打开文件对话框、选择文件、显示路径)——参考【鸡啄米】

本操作实现了在MFC中打开文件对话框,选择文件并显示文件的路径。

MFC使用文件对话框类CFileDialog封装了对文件对话框的操作。
下面列出几个CFileDialog类的成员函数,我们可以使用它们获得文件对话框中的各种选择。

GetFileExt():获得选定文件的后缀名。
GetFileName():获得选定文件的名称,包括后缀名。
GetFileTitle():获得选定文件的标题,即不包括后缀名。
GetFolderPath():获得选定文件的目录。
GetNextPathName():获得下一个选定的文件的路径全名。
GetPathName():获得选定文件的路径全名。
GetReadOnlyPref():获得是否“以只读方式打开”。
GetStartPosition():获得文件名列表中的第一个元素的位置。

1.创建一个基于对话框的MFC应用程序工程,名称设为“test”。

2.修改主对话框IDD_test_DIALOG的模板,删除自动生成的“TODO: Place dialog controls here.”静态文本框,添加两个编辑框,ID分别为IDC_OPEN_EDIT和IDC_SAVE_EDIT,再添加两个按钮,ID分别设为IDC_OPEN_BUTTON和IDC_SAVE_BUTTON,Caption分别设为“打开”和“保存”。按钮IDC_OPEN_BUTTON用于显示打开文件对话框,编辑框IDC_OPEN_EDIT显示在打开文件对话框中选择的文件路径。按钮IDC_SAVE_BUTTON用于显示保存文件对话框,编辑框IDC_SAVE_EDIT显示在保存文件对话框中选择的文件路径。

3.分别为按钮IDC_OPEN_BUTTON和IDC_SAVE_BUTTON添加点击消息的消息处理函数CtestDlg::OnBnClickedOpenButton()和CtestDlg::OnBnClickedSaveButton()。

4.修改两个消息处理函数如下:

void CtestDlg::OnBnClickedOpenButton()   
{   
    // TODO: Add your control notification handler code here   
    // 设置过滤器   
    TCHAR szFilter[] = _T("文本文件(*.txt)|*.txt|所有文件(*.*)|*.*||");   
    // 构造打开文件对话框   
    CFileDialog fileDlg(TRUE, _T("txt"), NULL, 0, szFilter, this);   
    CString strFilePath;   
   
    // 显示打开文件对话框   
    if (IDOK == fileDlg.DoModal())   
    {   
        // 如果点击了文件对话框上的“打开”按钮,则将选择的文件路径显示到编辑框里   
        strFilePath = fileDlg.GetPathName();   
        SetDlgItemText(IDC_OPEN_EDIT, strFilePath);   
    }   
}   



void CtestDlg::OnBnClickedSaveButton()   
{   
    // TODO: Add your control notification handler code here   
    // 设置过滤器   
    TCHAR szFilter[] = _T("文本文件(*.txt)|*.txt|Word文件(*.doc)|*.doc|所有文件(*.*)|*.*||");   
    // 构造保存文件对话框   
    CFileDialog fileDlg(FALSE, _T("doc"), _T("my"), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter, this);   
    CString strFilePath;   
   
    // 显示保存文件对话框   
    if (IDOK == fileDlg.DoModal())   
    {   
        // 如果点击了文件对话框上的“保存”按钮,则将选择的文件路径显示到编辑框里   
        strFilePath = fileDlg.GetPathName();   
        SetDlgItemText(IDC_SAVE_EDIT, strFilePath);   
    }   
}

结果如下所示:
在这里插入图片描述
tips:上述代码只是在编辑栏显示了,所选文件的路径,并没有对文件进行操作

  • 28
    点赞
  • 122
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: "mfc详细教程csdn" 是指 CSDN(CSDN是中国最大的专业技术社区平台之一)上提供的关于 MFC(Microsoft Foundation Classes,微软基础类库)的详细教程MFC 是微软为开发 Windows 平台应用程序而提供的一组 C++ 类库。它集成了许多用于创建 Windows 桌面应用程序的常用功能和界面元素,如窗口、对话框、按钮、菜单等。通过学习 MFC开发者可以更轻松地创建功能丰富、界面友好的 Windows 应用程序。 在 CSDN 上的 MFC 详细教程提供了全面的学习资源,其中包括了 MFC 框架的概述、MFC 与 Windows API 的对比、MFC 的基本概念和使用方法等内容。教程还提供了大量的实例代码和案例,帮助开发者深入理解 MFC 的各个方面,并能够快速上手开发应用程序。 通过该教程开发者可以学习如何创建基本的 MFC 应用程序框架、如何处理 Windows 消息、如何设计和布局对话框、如何处理用户输入等。此外,教程还探讨了一些高级的 MFC 主题,如数据库支持、多线程编程和自定义控件等。 对于有经验的开发者来说,MFC 详细教程可以作为一个良好的参考资源,帮助他们解决特定的问题,提高开发效率。对于初学者来说,该教程提供了逐步学习 MFC路径,让他们能够从最基础的知识开始,逐渐掌握 MFC 的各个方面。 总之,CSDN 提供的 MFC 详细教程是一个很好的学习资源,适合想要学习 MFC 开发开发者,无论是初学者还是有经验的开发者都可以从中获得帮助和指导。 ### 回答2: MFC(Microsoft Foundation Class)是一种基于C++的图形用户界面(GUI)库,用于Microsoft Windows操作系统。它提供了用于开发Windows应用程序的类和函数库。 CSDN(中国软件开发者网)是一个面向IT技术开发者的综合性社区平台,提供了大量的技术文章、博客和论坛。 CSDN上有关MFC的详细教程很多,其中包括了MFC的基础知识、应用程序设计、界面设计、消息处理、控件使用等方面的内容。 在MFC详细教程中,可以学习到创建MFC应用程序的基本步骤和原理,学会如何布局和设计应用程序的界面,以及如何使用MFC提供的类和函数库进行开发。还可以了解到如何处理用户输入消息和事件,以及如何使用MFC提供的控件构建用户友好的界面。 通过CSDN上的MFC详细教程开发者可以系统地学习和掌握MFC开发技术,从而能够快速地创建功能强大的Windows应用程序。 总而言之,CSDN上的MFC详细教程提供了丰富的资源,通过学习这些教程开发者可以掌握MFC开发技术,从而能够更加高效地进行Windows应用程序的开发。 ### 回答3: MFC(Microsoft Foundation Classes)是微软公司在Windows平台上开发的一套应用程序框架,用于简化Windows应用程序的开发过程。CSDN(全称:中国软件开发网)是中国最大的IT技术社区,提供各类技术文章、教程、博客等资源。 CSDN提供了很多MFC的详细教程,可以帮助初学者快速掌握MFC开发技巧和基本概念。这些教程从基础的MFC应用程序创建开始,逐步介绍了MFC的窗口、控件、消息处理、对话框等核心概念和使用方法。通过这些教程,读者可以了解到MFC的整体架构和工作原理,并学会如何创建和管理MFC应用程序。 在CSDN的MFC教程中,还包含了丰富的实例代码和项目案例,读者可以通过实践来巩固所学的知识。这些实例涵盖了MFC的各个方面,包括图形界面的设计、数据库连接、文件操作、多线程编程等等。通过学习这些实例,读者可以掌握MFC的常用功能和技巧,并能够应用到自己的项目中。 同时,CSDN还提供了MFC开发的进阶教程,如自定义控件的开发MFC与.NET的集成、界面美化等。这些教程帮助读者深入了解MFC的更高级特性和扩展功能,提升自己的开发技能和水平。 总之,CSDN提供的MFC详细教程是一个很好的学习资源,可以帮助读者快速入门并掌握MFC开发的技能。无论是初学者还是有一定经验的开发人员,都可以通过CSDN的教程来提高自己的MFC编程能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值