打开/保存文件对话框:

CFileDialog::CFileDialog(BOOL bOpenFileDialog, //为TRUE则显示打开对话框,为FALSE则显示保存对话文件对话框LPCTSTR lpszDefExt = NULL, //默认的文件扩展名LPCTSTR lpszFileName = NULL, //默认的文件名DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, //设定风格LPCTSTR lpszFilter = NULL, //列出可供选择的文件类型和相应的扩展名CWnd* pParentWnd = NULL //父窗口句柄指针
);

(1)打开文件对话框

static TCHAR szFilter[] =_T("Info Files (*.csv)|*.csv|")_T("Info Files (*.txt)|*.txt|")_T("Info Files (*.csv;*.txt)|*.csv;*.txt|");CFileDialog hFileDlg(TRUE,NULL,NULL,
OFN_FILEMUSTEXIST | OFN_READONLY | OFN_PATHMUSTEXIST,
szFilter,
NULL);
if(hFileDlg.DoModal() == IDOK)
{m_path = hFileDlg.GetPathName();UpdateData(FALSE);
}

LPCTSTR lpszFilter 参数格式如:"Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc;*.xls|All Files (*.*)|*.*||";文件类型说明和扩展名间用 | 分隔,同种类型文件的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明。

创建文件对话框可以使用DoModal(),在返回后可以利用下面的函数得到用户选择:
CString CFileDialog::GetPathName( ) 得到完整的文件名,包括目录名和扩展名如:c:/test/test1.txt
CString CFileDialog::GetFileName( ) 得到完整的文件名,包括扩展名如:test1.txt

// 单个稳健获取路径

GetPathName()

// 多个文件获取

POSITION pos = dlg.GetStartPosition();

while(pos != NULL)

{

  m_path = dlg.GetNextPathName(pos);

}

(2)保存文件对话框

把第一个参数设置为FALSE即可,其他与(1)类似。

(3)选择文件夹对话框

    CString strPath;TCHAR szDir[MAX_PATH];BROWSEINFO bi;    bi.hwndOwner = this->m_hWnd;bi.pidlRoot = NULL;bi.pszDisplayName = szDir; // 此参数如为NULL则不能显示对话框bi.lpszTitle = _T("请选择目录");bi.ulFlags = BIF_STATUSTEXT | BIF_USENEWUI | BIF_RETURNONLYFSDIRS;bi.lpfn = NULL;bi.lParam = 0;bi.iImage = 0;ITEMIDLIST *pidl = SHBrowseForFolder(&bi); // 调用显示选择对话框if(pidl == NULL){return;}// 取得文件夹路径到Buffer里if(!SHGetPathFromIDList(pidl,szDir)){return;}else{strPath = szDir; // 保存为CString}

转载于:https://www.cnblogs.com/sylar-liang/p/4122320.html

弹出打开/保存文件对话框 选择文件夹对话框相关推荐

  1. html转pdf后 框会消失,html或其它文件转pdf弹出打开保存框

    第一步:下载wkhtmktopdf软件,安装在指定的目录,如:C:\htmlToPdf\wkhtmltopdf, 第二步:把安装好的wkhtmltopdf文件目录加到环境变量Path路径中, publ ...

  2. js在IE下面弹出打开和保存文件的对话框

    js在IE下面弹出打开和保存文件的对话框 2010-08-11 13:39:16|  分类: JavaScript |  标签: |字号大中小 订阅 <html> <head> ...

  3. 运行窗口输入命令 点击确定后弹出“打开方式”对话框的处理方法

    案例1:运行窗口输入"CMD" 弹出"打开方式"对话框的处理方法 如果像笔者一样出现了 在开始-> 运行 -> 输入"CMD"后 ...

  4. html无法选记事本打开方式,WinXp无法打开记事本或打开记事本会弹出打开方式的解决方案...

    WinXp系统中,如果记事本的关联被破坏,那么用户很有可能会碰到无法打开记事本或开启开记事本就弹出打开方式的情况.这该怎么办?我们又该如何恢复记事本的关联?下面,小编就向大家分享WinXp无法打开记事 ...

  5. Ajax弹出式无刷新城市选择特效

    为什么80%的码农都做不了架构师?>>>    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional// ...

  6. android 弹出编辑框,Android编程实现的EditText弹出打开和关闭工具类

    本文实例讲述了Android编程实现的EditText弹出打开和关闭工具类.分享给大家供大家参考,具体如下: 需求: 使用代码实现Android的输入框EditText对键盘的关闭弹出的实现. 代码: ...

  7. 用C#语言在VS2010 WPF中编写的选择文件和选择文件夹的问题及其解决方案

    用C#语言在VS2010 WPF中编写的选择文件和选择文件夹的问题及其解决方案 参考文章: (1)用C#语言在VS2010 WPF中编写的选择文件和选择文件夹的问题及其解决方案 (2)https:// ...

  8. EBS_FORM_开发:关于切换不同BLOCK的时候弹出需要保存的窗口

    在开发的时候发现这样一个问题,当切换不同BLOCK的时候弹出需要保存的窗口,于是想在切换record的时候,自动commit一下,结果发现很多触发器都不允许commit_form的函数.于是就有了两个 ...

  9. Layui弹出层的三项选择

    以Layu.msg()为例. layer.msg('大部分参数都是可以公用的<br>合理搭配,展示不一样的风格', {time: 20000, //20s后自动关闭btn: ['明白了', ...

最新文章

  1. printf多行输入格式
  2. #region的快捷键+++从一个页面中弹出一个新窗口,当新窗口关闭时刷新原窗口!...
  3. Java分段函数选择结构,编程流程作业选择结构(50题)
  4. python中字典不自动排序/删除指定类型文件/执行可执行文件的返回值
  5. 运维学习之自动化安装系统的配置
  6. 苹果mac三维动画设计渲染软件:Cinema 4D R20 (c4d r20)
  7. 如何进行软件需求分析
  8. Mp4box的下载、安装和使用
  9. 【论文】Learning by Abstraction: The Neural State Machine
  10. python高级练习题:转换所有的案件!【难度:3级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
  11. switch相关系列
  12. 转载:asm volatile GCC的内嵌汇编语法 ATT汇编语言语法
  13. 只要400行代码就能自已实现一个绘图机原型固件,esp8266 + micropython 用3d打印机改的绘图机
  14. Cisco服务器怎么安装系统,思科CISCO 3750交换机配置导出导入及IOS升级步骤
  15. Chisel教程——07.详解ChiselTest
  16. 汉语拼音的23个声母该怎么学?
  17. 保证你会爱上的软件--私藏
  18. 在微信浏览器中做分享到朋友圈和分享到好友
  19. 魔百和M401A刷入Armbian系统EMMC
  20. 在软件开发中实施人工智能和敏捷管理的9种方法

热门文章

  1. ASP.NET伪静态-无法读取配置文件,因为它超过了最大文件大小的解决办法
  2. 有一只猪400斤,桥承重200斤,怎么过桥?
  3. 最伟大最不可思议最令人感动的父亲
  4. Web控件TreeView展开无闪烁的两个解决方法
  5. 条款11 在operator=中处理“自我赋值”
  6. ad如何镜像器件_使用 Dockerfile 制作镜像
  7. 差分进化算法_OPTIMUS软件功能特性介绍【全局优化算法模块】
  8. springboot编写自定义过滤器
  9. 教学案例 计算机,宁夏计算机教学案例
  10. 【TypeScript系列教程11】函数的使用