场景

  • 选择单一文件

技术点

  • CFileDialog
CFileDialog::CFileDialog(BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL );参数意义如下:bOpenFileDialog 为TRUE则显示打开对话框,为FALSE则显示保存对话文件对话框。lpszDefExt 指定默认的文件扩展名。lpszFileName 指定默认的文件名。dwFlags 指明一些特定风格。lpszFilter 是最重要的一个参数,它指明可供选择的文件类型和相应的扩展名。参数格式如:_T("Image Files(*.jpg;*.png;*.bmp)|*.jpg;*.png;*.bmp|All Files (*.*)|*.*||")文件类型说明和扩展名间用 | 分隔,同种类型文件的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明。

代码

void CMFCClistDlg::GUI_Add_Check_Dir()
{CFileDialog dlg(TRUE, _T("*.txt"),NULL, OFN_ALLOWMULTISELECT | OFN_HIDEREADONLY | OFN_FILEMUSTEXIST,_T("conf Files(*.ini;*.txt)|*.ini;*.txt|All Files (*.*)|*.*||"),NULL);dlg.m_ofn.lpstrTitle = _T("选择字典");CString filename;vector<CString> vecFilePaths;if (dlg.DoModal() == IDOK){POSITION fileNamesPosition = dlg.GetStartPosition();while (fileNamesPosition != NULL){// filename 是获取得文件名filename = dlg.GetNextPathName(fileNamesPosition);vecFilePaths.push_back(filename);}}// 计算文件路径是否为空,如果为空就是没有选择文件int count = vecFilePaths.size();if (count == 0)MessageBox(_T("没有选择文件"), NULL, MB_OK | MB_ICONQUESTION);// 把变量内容更新到对话框UpdateData(FALSE);
}

参考

MFC 中CFileDialog的用法

https://blog.csdn.net/liuwumiyuhuiping/article/details/7348591

转载于:https://www.cnblogs.com/17bdw/p/10275932.html

MFC_CFileDialog_选择单一文件相关推荐

  1. vs2010打不开vs2017的.sln文件,出现错误提示 “选择的文件是解决方案文件 但是用此应用程序的较新版本创建的,无法打开”

    vs2010打不开vs2017的.sln文件,出现错误提示 "选择的文件是解决方案文件 但是用此应用程序的较新版本创建的,无法打开" 参考文章: (1)vs2010打不开vs201 ...

  2. 解决上传文件或图片时选择相同文件无法触发change事件的问题

    昨天在做一个上传文件的模块时遇到了这样的问题:打开文件一上传,上传成功后再次点击文件一,change事件无反应 <input type="file" name="f ...

  3. centos7限制普通用户访问单一目录下的单一文件

    要求给开发同事开设一个查看日志的账号,并限制其只能访问该目录下的单一文件 1.先新建账号 useradd jeecg passwd jeecg 家目录为 /home/jeecg 2.日志路径是 /op ...

  4. [转]将input file的选择的文件清空

    本文转自:http://hi.baidu.com/xiongshihu/item/125c79b47632e794194697f5 上传文件时,选择了文件后想清空文件路径的两种办法: JS代码 < ...

  5. 在页面显示html文件,把选择的文件显示在页面上 #1《 HTML5:文件 API 》

    在这个文件里面,我添加了一个 标签,上面有一个 .list-group 类 - 下面,我们去把用户使用 选择文件 表单元素所选择的文件的列表,显示在这个拥有 .list-group 类的 标签里面 . ...

  6. jquery 文件上传 触发两次_点击三次input按钮,前两次不选择任何文件,第三次选择一个文件,结果上传了3个文件,即发生了三次请求...

    点击三次input按钮,前两次不选择任何文件,第三次选择一个文件,结果页面上出现了3个文件,也就是上传了3个文件 我点击input,不选择任何文件,然后取消文件选择器的窗口,然后第二次次点击input ...

  7. 100台服务器分发文件,通过简单shell脚本+rsync实现单一文件分发到多台服务器

    如果是多台机器,可以考虑分布式文件系统或其他脚本通过来实现.该脚本仅适合通过rsync实现单一文件分发到多台服务器. vim rsync_single_web.sh #!/bin/sh webnode ...

  8. php打开文件对话框,JS打开选择本地文件的对话框

    方法一: 在定义的form中添加以下javascript代码: { anchor : '95%', xtype: 'fileuploadfield', id: 'form-file', emptyTe ...

  9. 将input file的选择的文件清空的两种解决方案

    将input file的选择的文件清空的两种解决方案 参考文章: (1)将input file的选择的文件清空的两种解决方案 (2)https://www.cnblogs.com/wangxueyin ...

最新文章

  1. WWF(Windows Workflow Foundation)开发环境的建立。 .NET 技术前瞻,WWF,Windows,Workflow,Foundation...
  2. win32汇编定时器简单Demo
  3. mybatis教程--一对多查询
  4. 无线路由器发起ARP攻击,致使网络中断,这是为什么?
  5. Go 并发编程 — 深入浅出 sync.Pool ,最全的使用姿势,最深刻的原理
  6. https抓包_浅谈HTTPS抓包原理,为什么Charles能够抓取HTTPS报文?
  7. VC如何打开代码对应的界面编辑窗口
  8. QQ客服代码(支持临时会话设置)
  9. 精细化管理设备资产,降低企业运营成本
  10. 系统异常日志处理的思考
  11. 在绩效评估中使用 360 反馈
  12. 简述igp和egp_IGP 和 EGP 这两类协议的主要区别是什么 - 问答库
  13. json文件批量转换xml
  14. ios 开发设置左滑退出_iOS 开发UITableView左滑出现删除按钮的运用方法
  15. Matlab 未找到支持的编译器或 SDK 解决方法归纳
  16. 【新手向】centOS 7 linux虚拟机联网具体步骤
  17. 如何在小米9 se(安卓9)安装Xposed框架?
  18. DevOps到底是什么?
  19. Eclipse显示空白符号的具体设置
  20. 修复\okldr.mbr ,状态0x000000f

热门文章

  1. 简述数据库事务并发机制
  2. pymysql 返回数据为字典形式(key:value--列:值)
  3. Cobertura代码覆盖率测试
  4. [saiku] 使用 Apache Phoenix and HBase 结合 saiku 做大数据查询分析
  5. struct和typedef struct用法
  6. Java IO ---学习笔记(数据流)
  7. mysql using btree_mysql 索引中的USING BTREE 的意义
  8. lr0文法分析表示例_详解自然语言处理(NLP)5大语义分析技术及14类应用(建议收藏)...
  9. python 货币合适_算法之Python实现 - 001 : 换钱的最少货币数
  10. awk 脚本_AWK单行代码和脚本可帮助您对文本文件进行排序