MFC 选择文件夹
WCHAR szPath[_MAX_PATH] = {};
BROWSEINFO bi;
//指定父窗口,在对话框显示期间,父窗口将被禁用
bi.hwndOwner = this->GetSafeHwnd();
//如果指定NULL,就以“桌面”为根
bi.pidlRoot = NULL;
//这一行将显示在对话框的顶端
bi.lpszTitle = _T("请选择一个文件夹");
bi.pszDisplayName = szPath;
//只返回文件系统中存在的文件夹
bi.ulFlags = BIF_RETURNONLYFSDIRS;
bi.lpfn = NULL;//回调函数的指针
bi.lParam = NULL;//传向回调函数的参数
//现在,调用函数来显示对话框
//它总与Windows的外壳程序Explorer保持相同的外观
LPITEMIDLIST pItemIDList = SHBrowseForFolder(&bi);
if(pItemIDList){//点按了“确定”按钮
vFiles.clear();
TCHAR szPath[_MAX_PATH];
if (SHGetPathFromIDList(pItemIDList, szPath)){
EnumFiles(szPath, vFiles);
}
//防止内存泄漏,要使用IMalloc接口
IMalloc* pMalloc;
if (SHGetMalloc(&pMalloc) != NOERROR){
// 未返回有效的IMalloc接口指针
TRACE(_T("无法取得外壳程序的IMalloc接口\n"));
}
pMalloc->Free(pItemIDList);
if(pMalloc){
pMalloc->Release();
}
}
MFC 选择文件夹的更多相关文章
- MFC选择文件(夹)按钮实现
MFC选择文件(夹)按钮实现 选择文件(夹) void CFileSelectDlg::OnBnClickedButtonSelect() { if(((CButton*)(GetDlgItem(ID ...
- MFC 打开文件夹选择框并获取文件夹路径
CString FicowGetDirectory() { BROWSEINFO bi; char name[MAX_PATH]; ZeroMemory(&bi, sizeof(BROWSEI ...
- MFC中打开选择文件夹对话框,并将选中的文件夹地址显示在编辑框中
一般用于选择你要将文件保存到那个目录下,此程序还包含新建文件夹功能 BROWSEINFO bi; ZeroMemory(&bi, sizeof(BROWSEINFO)); //指定存放文件的 ...
- MFC弹出选择文件和选择文件夹代码
选择文件夹 TCHAR szSelectedDir[]; BROWSEINFO bi; ITEMIDLIST *il; bi.hwndOwner = m_hWnd; bi.pidlRoot = NUL ...
- NX二次开发-弹出选择文件夹对话框
这个UFUN和NOPEN里没有对应的函数和类,要用C++的方法去做. #include "afxdialogex.h"//弹出选择文件夹对话框头文件 #include " ...
- 琐碎--选择文件夹(路径)+生产txt格式的log+数据库操作方式
记录日常工作常用到的一些方法: 1 选择文件操作,并将文件的路径记录下来: OpenFileDialog ofd = new OpenFileDialog(); ofd.Multiselect = f ...
- 使用C#选择文件夹、打开文件夹、选择文件
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- C#选择文件、选择文件夹、打开文件(或者文件夹)
1.选择文件用OpenDialog OpenFileDialog dialog = new OpenFileDialog(); dialog.Multiselect = true;//该值确定是否可以 ...
- Delphi 弹出Windows风格的选择文件夹对话框, 还可以新建文件夹
Delphi 弹出Windows风格的选择文件夹对话框, 还可以新建文件夹 unit Unit2; interface uses Windows, Messages, SysUtils, V ...
随机推荐
- 分页插件 layui.laypage 的用法
参考 layui.laypage 官方文档 https://www.layui.com/demo/laypage.html 第一步下载插件 (注意不能只引入引入 layui.css和layui.js ...
- AJAX封装数据处理简单操作
数据的封装处理主要展现在JS中,在页面里面引入封装的JS, "js/ajax.js" 简单封装将get和post方法都写入,get的方法和post的方法依然需要严格区分,包括typ ...
- 第二章:windows下搭建开发环境
IDE ---- pycharm数据库 --- mysql.redis.elasticsearch开发环境 -- anaconda 第一节:pycharm的安装和简单使用...(网上一搜一大堆,所以没 ...
- Redis字符串类型
字符串是Redis中最基本的数据类型,他能存储任何形式的字符串,包括二进制数据. 命令 赋值 SET key value > SET key hello OK 取值 GET key > G ...
- C#中的扩展类的理解
扩展类是一种静态的一种类的调用方法,通过实例化进行调用.利用this进行指正该类,有参数的时候直接在后面追加参数. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- Verilog有符号整型数(signed int)比大小
本文参考了https://blog.csdn.net/wenxinwukui234/article/details/42119265/ 关于2进制补码的思考和讨论. ================= ...
- sklearn实现多分类逻辑回归
sklearn实现多分类逻辑回归 #二分类逻辑回归算法改造适用于多分类问题1.对于逻辑回归算法主要是用回归的算法解决分类的问题,它只能解决二分类的问题,不过经过一定的改造便可以进行多分类问题,主要的改 ...
- SciPy k均值聚类
章节 SciPy 介绍 SciPy 安装 SciPy 基础功能 SciPy 特殊函数 SciPy k均值聚类 SciPy 常量 SciPy fftpack(傅里叶变换) SciPy 积分 SciPy ...
- 用 Heapster 监控集群【转】
Heapster 是 Kubernetes 原生的集群监控方案.Heapster 以 Pod 的形式运行,它会自动发现集群节点.从节点上的 Kubelet 获取监控数据.Kubelet 则是从节点上的 ...
- java类 2.18
1. 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员.如: 如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量.如: 2. 在普通成员方法中,则可 ...