CFileDialog 多文件选择注意事项

2023-11-17

当选择文件数量比较多的时候,发现CFileDialog返回文件名并不完整,翻阅MSDN发现文件名长度是有限制的。解决思路:

	CFileDialog dlgOpen(TRUE, _T("*.txt"), NULL, OFN_HIDEREADONLY | OFN_READONLY | OFN_ALLOWMULTISELECT | OFN_FILEMUSTEXIST, _T("*.txt|*.txt"), this);
	const int MIN_FILE_NUMBER = 50;                                                           //这里假设最多允许选择50个文件
	dlgOpen.m_ofn.lpstrFile = new TCHAR[_MAX_PATH * MIN_FILE_NUMBER];         
	memset(dlgOpen.m_ofn.lpstrFile, 0, _MAX_PATH * MIN_FILE_NUMBER);
	dlgOpen.m_ofn.nMaxFile = _MAX_PATH * MIN_FILE_NUMBER;
	dlgOpen.m_ofn.lpstrTitle = _T("请选择txt文件");
	dlgOpen.m_ofn.lpstrInitialDir = _T("./");
	INT_PTR result = dlgOpen.DoModal();
	if (result == IDOK) {
		std::vector<CString> vecFiles;
		POSITION pos = dlgOpen.GetStartPosition();
		while (pos)
		{
			vecFiles.push_back(dlgOpen.GetNextPathName(pos));
		}

        //...
    }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CFileDialog 多文件选择注意事项 的相关文章

随机推荐

  • java占用cpu最高的线程堆栈信息

    jstack找出占用cpu最高的线程堆栈信息 package com example demo public class Math public static final int initData 666 public int comput
  • Swagger3的使用

    本篇涉及到的swagger注解 速记 EnableSwagger2 开启swagger EnableOpenApi 开启swagger的Api功能 EnableWebMvc 是为了解决swagger和springmvc整合之后总是出现空指针
  • 解决idea打不开的两种可能性

    一 如果 IDEA 下载完成后打不开 可能是因为 dea64 exe vmoptions 文件中保留了之前版本的破译配置 注释或者删除就可以了 1 打开 C Users Administrator AppData Roaming JetBr
  • python stm32-STM32 上面跑Python

    By Derrick Wang 之前我一直在找一种方案 可以把stm32打造成一个真正的创客平台 因为传统的开发环境安装编译 眼花缭乱的工具栏和按钮并不实用于非电子类专业的爱好者设计出自己的作品 这样的高门槛把很多有兴趣者拒之门外 一个没有
  • UDP协议介绍

    UDP 是一个简单地面向数据报的运输层协议 进程的每个输出操作都正好产生一个 UDP 数据报 并组装成一份待发送的 IP 数据报 UDP 不提供可靠性 它把应用程序传给 IP 层的数据发送出去 但是并不保证他们能到达目的地 UDP数据报封装
  • [蓝桥杯] 分数 (Python 实现)

    题目 代码 b 0 a 1 for i in range 0 20 b a a 2 print d d b a 2 结果 1048575 524288
  • C++案例

    目录 一 while循环猜数组 二 水仙花数 三 for循环敲桌子游戏 四 9 9乘法表 五 一维数组 元素逆置 六 冒泡排序 七 封装一个函数 利用冒泡排序 实现对整型数组的升序排序 八 结构体嵌套结构体 九 结构体排序 一 while循
  • 哈夫曼编码最大编码长度

    概念 层数 叶子节点为待编码的数据 根为第0层 编码长度 第 L L L层数据编码后的长度为 L L L 节点概率 若节点为叶子节点 则概率为叶子所编码数据的频率
  • Linux INPUT 子系统实验

    按键 鼠标 键盘 触摸屏等都属于输入 input 设备 Linux 内核为此专门做了一个叫做 input子系统的框架来处理输入事件 输入设备本质上还是字符设备 只是在此基础上套上了 input 框架 用户只需要负责上报输入事件 比如按键值
  • Python3之异常with语句

    高级语法之异常with 语法 with 表达式1 as 变量1 表达式2 as 变量2 语句块 with的作用 使用于对资源进行访问的场合 确保使用过程中不管是否发生异常都会执行必须的 清理 操作 并释放资源 如 文件打开后自动关闭 线程中
  • 如何判断是否适合学编程?

    能问出这个问题的人 肯定是心里有点想学习编程 但是又担心自己不适合学习编程 学不会反而浪费时间 那么 如何判断自己是否适合学习编程呢 可以从如下几个方面入手 1 明确自己为什么要学编程 因为不同的编程语言适用的领域不一样 比如我认识一个做互
  • 使用COLMAP进行三维重构

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 COLMAP是什么 二 数据准备 2 1 数据采集 2 2 数据组织 三 重构 3 1 提取图像特征 3 2 特征点匹配 3 3 稀疏重建 SfM 3 4
  • QT开发遇到的问题(1)——程序循环执行的问题

    我之前一直直接用C 开发工程 有需求需要跨平台开发 前期使用时候感觉还可以 转到工程应用时候 就遇到好多坑 今天就遇到个大坑 在开发时候需要不断循环一块代码来实现某种功能 QT不像C 那种 这个更加专业 下面我对这个问题进行详细说明分析 问
  • ResultSet详解

    结果集 ResultSet 是数据中查询结果返回的一种对象 可以说结果集是一个存储查询结果的对象 但是结果集并不仅仅具有存储的功能 他同时还具有操纵数据的功能 可能完成对数据的更新等 结果集读取数据的方法主要是getXXX 他的参数可以是整
  • docker 入门指南

    docker Docker is an open platform for developing shipping and running applications Docker enables you to separate your a
  • Matlab零基础入门

    前言 本篇是随笔 一段时间没用Matlab 简单复习了下 都是入门知识 零基础可读 文章目录 1 初步认识界面和命名 2 数据类型和矩阵 3 元胞数组和结构体 3 1 元胞数组 3 2 eye 3 3 3 magic 3 4 结构体 4 矩
  • RNA-seq——学习路线、学习经验、实战项目、学习总结

    1 参考课程和博客 B站 RNA seq转录组数据分析入门实战 生信技能树 转录组测序数据分析 简书 RNA seq 1 用conda安装RNA seq所需要的工具 简书 RNA seq 2 1 原始数据下载的几种方法 简书 RNA seq
  • python接口自动化(三)--如何设计接口测试用例(详解)

    简介 上篇我们已经介绍了什么是接口测试和接口测试的意义 在开始接口测试之前 我们来想一下 如何进行接口测试的准备工作 或者说 接口测试的流程是什么 有些人就很好奇 接口测试要流程干嘛 不就是拿着接口文档直接利用接口 测试工具测试嘛 其实 如
  • 开发EduSoho v8.7.10 本地播放视频超时或者快进后网络错误导致视频下载中途失败。鉴权播放次数问题

    EduSoho v8 7 10 本地播放视频超时或者快进后网络错误导致视频下载中途失败 鉴权播放次数问题 文件路径 src AppBundle Twig WebExtension php protected function makeTok
  • CFileDialog 多文件选择注意事项

    当选择文件数量比较多的时候 发现CFileDialog返回文件名并不完整 翻阅MSDN发现文件名长度是有限制的 解决思路 CFileDialog dlgOpen TRUE T txt NULL OFN HIDEREADONLY OFN RE