打开目录选择对话框要使用到API函数SHBrowseForFolder来实现

函数原型为:

LPITEMIDLIST SHBrowseForFolder(LPBROWSEINFO lpbi);

其中LPBROWSEINFO结构如下:

typedef struct _browseinfo
{
HWND hwndOwner;
LPCITEMIDLIST pidlRoot;
LPSTR pszDisplayName;
LPCSTR lpszTitle;
UINT ulFlags;
BFFCALLBACK lpfn;
LPARAM lParam;
int iImage;
} BROWSEINFO;

使用例子如下:

void CConvertDlg::OnBnClickedBtnopen()
{
// TODO: 在此添加控件通知处理程序代码
BROWSEINFO bi;
TCHAR szPath[MAX_PATH]; bi.hwndOwner = NULL;
bi.pidlRoot = NULL;
bi.pszDisplayName = szPath; //此参数如为NULL则不能显示对话框
bi.lpszTitle = "选择一个目录";
bi.ulFlags = BIF_RETURNONLYFSDIRS;
bi.lpfn = NULL;
bi.iImage = ; //初始化入口参数bi结束
LPITEMIDLIST pIDList = SHBrowseForFolder(&bi);//调用显示选择对话框
if(pIDList)
{
SHGetPathFromIDList(pIDList, path);
//取得文件夹路径到path里
m_strPath = szPath;//将路径保存在一个CString对象里,m_strPathName为编辑框绑定的一个值类 //型变量
}
UpdateData(FALSE); //将选择的文件夹路径显示在编辑框中
}

参考:百度经验

VC++ 目录选择对话框的更多相关文章

  1. windows目录选择 文件选择 文件保存对话框

    打开文件对话框 const char pszFilter[] = _T("EXE File (*.txt)|*.txt|All Files (*.*)|*.*||"); CFile ...

  2. delphi弹出选择对话框选择目录|SelectDirectory 函数(转)

    SelectDirectory 函数 通过显示一个对话框来让用户选择一个目录.注意:在使用前要在Uses 语句中添加包含FileCtrl 的说明.函数原型如下:function SelectDirec ...

  3. delphi弹出选择对话框选择目录SelectDirectory 函数

    SelectDirectory 函数通过显示一个对话框来让用户选择一个目录.注意:在使用前要在Uses 语句中添加包含FileCtrl 的说明.函数原型如下:function SelectDirect ...

  4. Visual Studio 2012环境变量、工作目录、vc++目录、 命令等 的配置和作用

    在调试 Visual Studio 212 程序时,经常有一些动态链接库(即 dll 文件)需要加载到工程里,这样才能依赖第三方库进行程序调试. 这些动态链接库,往往都是测试版本或是开发中的版本,或者 ...

  5. [VB.NET]调用系统的文件夹选择对话框

    以下示例代码展示如何调用系统的文件夹选择对话框: Private Function SelectFolder(ByVal Describe As String, Optional ByVal Show ...

  6. Visual Studio环境变量、工作目录、vc++目录、 命令等 的配置和作用

    在调试 Visual Studio 2008 程序时,经常有一些动态链接库(即 dll 文件)需要加载到工程里,这样才能依赖第三方库进行程序调试. 这些动态链接库,往往都是测试版本或是开发中的版本,或 ...

  7. C++文件(夹)选择对话框

    由于各种应用,我们需要调用系统的打开文件对话框或者打开文件夹对话框,或两者兼有.今遇到这个情况已经解决,特写下这篇博文. 1.打开文件对话框常用的方法是使用系统的CFileDialog.这里介绍另外一 ...

  8. NSIS自定义目录选择页面制作之安装…

    在nsis制作自定义界面中,目录选择页面个人感觉最为繁琐,因为该界面不仅涉及到界面控件的创建,还要涉及到控件消息传递和状态改变时的回调函数通告. 迅雷界面为例: 其中安装目录中的8盘符,在本机中并不存 ...

  9. 7.Android开源项目WheelView的时间和地址联动选择对话框

    类似WheelView的时间和地址联动选择对话框在现在App经常看到,今天小结下. 主布局界面: <LinearLayout xmlns:android="http://schemas ...

随机推荐

  1. vue inheritAttrs、$attrs和$listeners使用

    inheritAttrs.$attrs和$listeners使用场景: 组件传值,尤其是祖孙组件有跨度的传值. (1)inheritAttrs 属性说明:https://cn.vuejs.org/v2 ...

  2. try/except/else语句

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #Python学习手册 868 #try/except/else语句 #try语句分句形式 except: # ...

  3. tar压缩解压

    把所有jpg文件和temp文件夹压缩到 jpg.tar.gz 压缩文件中 tar -czvf  jpg.tar.gz *.jpg  temp 把jpg.tar.gz 解压缩当前文件中 tar -xzv ...

  4. word技巧-文本转化表格

    工作中不断学习,总能得到一点点成就感! 样例:

  5. leetcode || 58、Length of Last Word

    problem: Given a string s consists of upper/lower-case alphabets and empty space characters ' ', ret ...

  6. openGL 坐标系的互相转换

    openGL坐标系包括旋转,平移,缩放被塞在一个矩阵里面. 坐标系之间的转换基础是矩阵的运算. 每个矩阵代表的坐标系,就是是原点坐标系通过旋转.平移,缩放得到的坐标系. 当一个矩阵右乘一个向量或是还有 ...

  7. xmlhttp.readyState==4 && xmlhttp.status==200的探究

    作为一个后端人员,很惭愧,对Ajax的使用只局限在功能实现层面的交互,对底层通过XMLHttpRequest对象来使用的知识却没有仔细研究过.现总结如下 1. XMLHttpRequest 对象的相关 ...

  8. BIND9源码分析之UDP数据处理

    本文简要介绍一下BIND9中的UDP数据处理,包括如何创建socket.设置什么socket参数.多线程环境中如何让多个线程读取53端口的数据等等. BIND9的架构采用event-driven和ta ...

  9. 理解ROC和AUC

    分类器各种各样,如何评价这些分类器的性能呢?(这里只考虑二元分类器,分类器的输出为概率值) 方法一:概率定义法 从正样本中随机选取元素记为x,从负样本中随机选取元素记为y,x的置信度大于y的概率 计算 ...

  10. 【LeetCode】130. Surrounded Regions (2 solutions)

    Surrounded Regions Given a 2D board containing 'X' and 'O', capture all regions surrounded by 'X'. A ...