{
CString FilePathName;
CFileDialog dlg(TRUE);///TRUE为OPEN对话框,FALSE为SAVE AS对话框
if(dlg.DoModal()==IDOK)
FilePathName=dlg.GetPathName();
} 文件名保存在了FilePathName里,然后处理吧 上面内容来自百度知道,去给amote258点个赞吧。 -------------------我是分割线---------------- 上面只是最简单的用法,那么更复杂的用法包括指定扩展名等等。下面是CFileDialog的详解: CFileDialog类封装了Windows常用的文件对话框。常用的文件对话框提供了一种简单的与Windows标准相一致的文件打开和文件存盘对话框功能。
CFileDialog的语法:

CFileDialog(BOOL bOpenFileDialog,
  LPCTSTR lpszDefExt=NULL,
  LPCTSTR lpszFileName=NULL,
  DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
  LPCTSTR lpszFilter=NULL,
  CWnd * pParentWnd=NULL); 

  1. 第一个参数 bOpenFileDialog为TRUE或FALSE。TRUE为打开文件;FALSE为保存文件。
  2. 第二个参数 lpszDefExt为缺省的扩展名。如果用户用户没有在文件名编辑框中输入文件扩展名,默认文件扩展名被自动附加到文件名上。如果设置为空,不附加任何扩展名。
  3. 第三个参数 lpszFileName为显示在文件名组合框的编辑框的文件名,一般可选NULL
  4. 第四个参数 dwFlags为对话框风格,一般为OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, 即隐藏只读选项和覆盖已有文件前提示。
    1. OFN_ALLOWMULTISELECT:允许选择多个文件

      OFN_CREATEPROMPT:如果输入的文件名不存在,则对话框返回询问用户是否根据次文件名创建文件的消息框

      OFN_FILEMUSTEXIST:只能输入已存在的文件名

      OFN_FORCESHOWHIDDEN:可以显示隐藏的文件

      OFN_NOREADONLYRETURN:不返回只读文件

      OFN_OVERWRITEPROMPT:保存的文件已存在时,显示文件已存在的信息

  5. 第五个参数 LpszFilter为下拉列表枢中显示文件类型。
    1. lpszFilter 是最重要的一个参数,它指明可供选择的文件类型和相应的扩展名。参数格式如:

      "JPG Files (*.jpg)|*.jpg|All Files (*.*)|*.*||";文件类型说明和扩展名间用 | 分隔,同种类型文件的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明。

  6. 第六个参数 pParentWnd为父窗口指针, 一般可选NULL。

代码示例:

void CMyDialog::OnBnClickedOpennc()
{
// TODO: 在此添加控件通知处理程序代码
CString FilePathName;
CFileDialog dlg(TRUE, //TRUE为OPEN对话框,FALSE为SAVE AS对话框
NULL,
NULL,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
(LPCTSTR)_TEXT("JPG Files (*.jpg)|*.jpg|All Files (*.*)|*.*||"),
NULL);
if(dlg.DoModal()==IDOK)
{
FilePathName=dlg.GetPathName(); //文件名保存在了FilePathName里
}
else
{
return;
}
}

以上内容参考自siriurs28,文中有修改。感谢原作者。

---------------------我还是分割线----------------

下面再补充一点获取文件名的几个函数:

CFileDialog 用于取文件名的几个成员函数:

假如选择的文件是C:\WINDOWS\TEST.exe

则:

(1)GetPathName();取文件名全称,包括完整路径。取回C:\WINDOWS\TEST.exe

(2)GetFileTitle();取文件全名:TEST.exe

(3)GetFileName();取回TEST

(4)GetFileExt();取扩展名exe

-----

更详细的内容可以参考renai2008的专栏

MFC打开文件对话框的更多相关文章

  1. MFC 打开文件对话框 打开单个文件

    CFileDialog的语法: CFileDialog(BOOL bOpenFileDialog,LPCTSTR lpszDefExt=NULL,LPCTSTR lpszFileName=NULL,D ...

  2. MFC程序打开文件对话框出错的问题解决

    前几天从网上下了个图像分析的mfc小程序,是VC6的 用VC6在本地编译生成都没问题.执行起来弹出一个未处理的错误,程序崩溃退出. 想起来原来遇到过打开文件对话框方面的问题,当时项目时间紧张未能深究. ...

  3. C++ MFC打开文件的流程

    打开文件的步骤如下: 弹出打开文件对话框 -> 获取选择的文件,并将文件显示在视图中. 我们程序中经常需要定制的操作如下: 1. 定制弹出的文件对话框,例如需要修改打开文件的类型或扩展名 2. ...

  4. 打开文件对话框在xp和win7上的实现文件任意多选

    作者:朱金灿 来源:http://blog.csdn.net/clever101 在xp系统上进行文件多选,实际上其文件字符串数组的缓冲区是有限,并不能支持选择任意多个文件,为此以前我还写过一篇文章: ...

  5. VS2012下自定义打开文件对话框

    VS2012下自定义打开文件对话框,MFC的CFileDialog封装了太多,太复杂,绕得头晕,自己封装一个得了 #pragma once #include <objbase.h> #in ...

  6. 4.使用CFileDialog打开文件对话框,获得文件路径 -windows编程

    引言:没想到2022年还有很多工业软件公司依然使用MFC,微软也一直在更新MFC的库,这次使用MFC封装的CFileDialog类,写一个获得选定文件路径,名称,扩展名的程序. 个人技术博客(文章整理 ...

  7. java中文件保存、打开文件对话框

    package com.soft.test; //AWT: FileDialog类 + FilenameFilter类 可以实现本功能 //Swing: JFileChooser类 + FileFil ...

  8. QT 打开文件对话框汇总

    Qstring fileName = QFileDialog::getOpenFileName(this, tr("open file"), " ",  tr( ...

  9. C# OpenFileDialog打开文件对话框(详解)

    一.打开文件对话框(OpenFileDialog) 1. OpenFileDialog控件的基本属性 InitialDirectory:对话框的初始目录 Filter: 获取或设置当前文件名筛选器字符 ...

随机推荐

  1. IOS设计模式之二(门面模式,装饰器模式)

    本文原文请见:http://www.raywenderlich.com/46988/ios-design-patterns. 由 @krq_tiger(http://weibo.com/xmuzyq) ...

  2. Windows Server 2003 激活码及激活方法

    Windows Server 2003 简体中文企业版,真正免激活. CD-KEY:JB88F-WT2Q3-DPXTT-Y8GHG-7YYQY 安装序列号:JCGMJ-TC669-KCBG7-HB8X ...

  3. Js对象转String的函数 和 JSON转String

    js对象转string的函数 function obj2str(o){ var r = []; if(typeof o =="string") return "" ...

  4. php的header()大全

    <?php /*** Function: PHP header() examples (PHP) ** Desc: Some examples on how to use the header( ...

  5. jQuery遮罩插件jQuery.blockUI.js简介

    利用Jquery.blockui.js创建可拖动.自定义内容的弹出层 利用Jquery.blockui.js创建可拖动.自定义内容的弹出层 目标 : 1 . 弹出层的内容可以自定义任意的HTML元素 ...

  6. 15、NFC技术:使用Android Beam技术传输文件

    传输文件的API 从Android4.1开始,NfcAdapter类增加了如下两个推送数据的方法. NfcAdapter.setBeamPushUris NfcAdapter.setBeamPushU ...

  7. VM虚拟机快照还原效果实现方式

    ===================================================默认"快照删除"行为:============================ ...

  8. 静态成员变量.xml

    pre{ line-height:1; color:#1e1e1e; background-color:#f0f0f0; font-size:16px;}.sysFunc{color:#627cf6; ...

  9. git 操作大全

    Git 以下内容整理自廖雪峰的git教程,主要用于个人方便使用git命令 git忽略已经被纳入版本库的文件 使用 git update-index –-skip-worktree [file] 可以实 ...

  10. WebApp开发经验

    1.自适应屏幕 <meta name="viewport" id="viewport" content="width = device-widt ...