VC 打开目录对话框
From: http://blog.sina.com.cn/s/blog_790bb7190100yxm7.html
对于文件选择对话框和目录选择对话框。在VC中打开文件选择对话框比较简单,使用CFileDialog就可以。打开目录选择对话框就稍微麻烦一些。需要使用API函数SHBrowseForFolder来实现。
LPITEMIDLIST SHBrowseForFolder(LPBROWSEINFOlpbi);
其中LPBROWSEINFO为BROWSEINFO结构的指针。
BROWSEINFO结构如下:
typedef struct _browseinfo
{HWND hwndOwner;LPCITEMIDLIST pidlRoot;LPSTR pszDisplayName;LPCSTR lpszTitle;UINT ulFlags;BFFCALLBACK lpfn;LPARAM lParam;int iImage;
}BROWSEINFO;
调用例子如下:
CString GetfolderPath()
{CString folderPath;BROWSEINFO bi;char buf[MAX_PATH];//初始化入口参数bibi.hwndOwner = NULL;bi.pidlRoot = NULL;bi.pszDisplayName = buf; //此参数如为NULL则不能显示对话框bi.lpszTitle = "选择路径";bi.ulFlags = BIF_RETURNONLYFSDIRS;bi.lpfn = NULL;bi.iImage = 0;LPITEMIDLIST pIDList = SHBrowseForFolder(&bi); //调用显示选择对话框if(pIDList){SHGetPathFromIDList(pIDList,buf); //取得文件夹路径到buf里folderPath = buf; //将路径保存在一个CString对象里}folderPath.Append("\\");return folderPath;
}
===========================================================
使用示例:
void CtzipUncompressDlg::OnBnClickedBtnUncompressto()
{CString folderPath;BROWSEINFO bi;char buf[MAX_PATH] = {0};//初始化入口参数bibi.hwndOwner = NULL;bi.pidlRoot = NULL;bi.pszDisplayName = buf;bi.lpszTitle = "解压缩到...";bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_NEWDIALOGSTYLE ;// new Folder buttonbi.lpfn = NULL;bi.iImage = 0;LPITEMIDLIST pIDList = SHBrowseForFolder(&bi); // 显示"浏览文件夹"对话框if(pIDList && SHGetPathFromIDList(pIDList, buf)) // 填充文件夹路径到buf{folderPath = buf;m_sDestDir = folderPath;UpdateData(FALSE);}
}
VC 打开目录对话框相关推荐
- vc 打开文件对话框获取选择文件路径
#include<Windows.h> int getfilename(wchar_t *buf, int len) { OPENFILENAME ofn; buf[0] ...
- VC++ 打开文件夹,保存文件等对话框的调用
2019独角兽企业重金招聘Python工程师标准>>> VC++ 打开文件夹,保存文件等对话框的调用 一.打开文件夹: 1.CFileDialog实现 CFileDialog hFi ...
- vc 添加打开文件对话框并读取文件
1.创建打开文件对话框: CFileDialog dlg(TRUE,//TRUE是创建打开文件对话框,FALSE则创建的是保存文件对 ...
- C#打开选择文件对话框和选择目录对话框
1. 选择文件对话框,首先引用using Microsoft.Win32名称空间. private void BrowseButton_Click(object sender, RoutedEv ...
- 用VC打开位图程序[转]
转自http://sophiekudo.blog.hexun.com/10811818_d.html 经过几天的奋战,按照网上的主要步骤,搞出来了一个用VC打开位图的程序,很是兴奋,现在把主要代码发在 ...
- 打开方式对话框 及 RUNDLL32(RUNDLL)的使用
转自:http://www.cnblogs.com/suiyingjie/archive/2006/08/07/469984.html 在VC中调用"打开方式..."(OPEN W ...
- windows api打开文件对话框
用windows api 写打开文件对话框主要使用OPENFILENAME ,GetOpenFileName, GetSaveFileName; 1.OPENFILENAME 结构体介绍:要使用Get ...
- python打开-Python中的打开文件对话框(转)
1.最早学习Tkinter的时候,在<Tkinter编程代码实例>中看到的"打开文件对话框"需要用到FileDialog模块,代码非常简单: from Tkinter ...
- C#打开文件对话框和文件夹对话框
打开文件对话框OpenFileDialog OpenFileDialog ofd = new OpenFileDialog();ofd.Filter = "Excel文件(*.xls;*.x ...
最新文章
- 封装函数 f,使 f 的 this 指向指定的对象
- Linux常用命令英文全称与中文解释Linux系统
- 【资源】首发:徐亦达老师的机器学习课件及下载(中文目录)
- Java程序员:不要因未知而让云成本大涨
- spark-on-yarn日志配置
- discuz viewthread.php,修改discuz论坛的标题header和footer
- 电脑静音工作,又听不到12306的来票音乐,纠结啊 !但春节前工作多任务重,不能安心工作,就动手做个“无声购票弹窗”工具吧!...
- C++之父谈C++:一天之内你就能学会出色使用C++
- Mysql查询高速缓存区
- 修改JEECG项目浏览器标题
- open函数_全!Python函数和文件操作合集(长文系列第三篇)
- 华为鸿蒙os logo,华为鸿蒙OS Logo揭秘:Powered by HarmonyOS
- malicious java_[我研究] Detecting Malicious Java Code Using Virtual Machine Auditing
- 先决条件检查失败错误
- 怎么实现微信公众号生成专属二维码推广来源统计
- Facebook、Twitter、LinkedIn分享按钮总结
- 从前慢-项目小型秒杀系统
- 苹果自带地图进行定位
- eplan 电箱布局_EPLAN电气图实例--控制柜(1)
- ead开局 华三inode_03 EAD用户接入-受控软件管理-新华三集团-H3C
热门文章
- Windows Server 2003 R2与SP2 的区别
- hive 导入hdfs数据_将数据加载或导入运行在基于HDFS的数据湖之上的Hive表中的另一种方法。
- java映射的概念_Java 反射 概念理解
- 推荐算法的先验算法的连接_数据挖掘专注于先验算法
- leetcode 852. 山脉数组的峰顶索引(二分查找)
- leetcode1028. 从先序遍历还原二叉树(dfs/栈)
- flutter bloc_如何在Flutter中使用Streams,BLoC和SQLite
- 开发人员避免编写测试的2个最常见原因
- [pytorch] Pytorch入门
- C# Java间进行RSA加密解密交互(二)