1、选择文件

              CFileDialogdlg(true, NULL, NULL, NULL, "所有文件 | *.*", this);

                 if (IDOK == dlg. DoModal())

                {

                                 MessageBox(dlg .GetPathName(), _T("" ));

                }

2、选择文件夹

                 BROWSEINFO bi ;            // BROWSEINFO结构体

                 TCHAR Buffer [512] = "";

                 TCHAR FullPath [512] = "";

                 bi.hwndOwner = m_hWnd;    // m_hWnd程序主窗口

                 bi.pidlRoot = NULL;

                 bi.pszDisplayName = Buffer; // 返回选择的目录名的缓冲区

                 bi.lpszTitle = "Selection"; // 弹出的窗口的文字提示

                 bi.ulFlags = BIF_RETURNONLYFSDIRS ; // 只返回目录。其他标志看MSDN

                 bi.lpfn = NULL;                         // 回调函数,有时很有用

                 bi.lParam = 0;

                 bi.iImage = 0;

                 ITEMIDLIST* pidl = ::SHBrowseForFolder (& bi); // 显示弹出窗口,ITEMIDLIST很重要

                 if (::SHGetPathFromIDList (pidl, FullPath))     // 在ITEMIDLIST中得到目录名的整个路径

                {

                                 // 成功

                }

                 else

                {

                                 // 失败

                }
 本文用菊子曰发布

VC中打开对话框选择文件和文件夹的更多相关文章

  1. VC++中复制对话框资源 之较好方法之一

    资源对话框的编写有时候较为麻烦,这里我成功实现了这个方法的可用性,具体如下: 碰到模块移植问题了,自己做的对话框类(继承于CDialog)要移植到目标工程中.在网上搜了几个帖子发现都说的很生涩.   ...

  2. VC++打开对话框选择一个文件夹路径 BROWSEINFO结构

    typedef struct _browseinfoW { HWND hwndOwner; PCIDLIST_ABSOLUTE pidlRoot; LPWSTR pszDisplayName; // ...

  3. VC中明明已经添加了头文件却还提示未定义的问题

    我在VS中编译程序遇到这个错误:error C3861: 'ReadDirectoryChangesW': identifier not found, even with argument-depen ...

  4. eclipse中打开含有汉字的properties文件显示乱码

    http://blog.csdn.net/wangjun5159/article/details/46965831

  5. C#打开并选择特定类型文件并返回文件名

    public string[] GetOpenFileDialogReturnFileFullName(bool multiSelect = false)         {             ...

  6. vc中改变对话框的背景色

    ---- 笔者曾在<软件报>2000年第5期中讨论过如何改变控件的颜色,但还有相当一部分的读者来信提问:一个基于对话框的MFC AppWizard应用程序中,如何改变对话框的背景颜色呢?对 ...

  7. VC中关于预编译头文件的概括,以及无法打开预编译头文件的错误解决

    1.预编译头文件 在VC中编译器一般都是以文件为单位进行编译,如果修改了工程中的一个文件,那么将导致所有文件都要从新编译,这样的编译将耗费很长时间.为了提高编译速度,将那些不常被修改,比较稳定,文件单 ...

  8. VC中加载LIB库文件的三种方法

    VC中加载LIB库文件的三种方法 在VC中加载LIB文件的三种方法如下: 方法1:LIB文件直接加入到工程文件列表中   在VC中打开File View一页,选中工程名,单击鼠标右键,然后选中&quo ...

  9. Win7-其中的文件夹或文件已在另一个程序中打开

    Win7-其中的文件夹或文件已在另一个程序中打开 如何解决Win7系统在删除或移动文件时提示,“操作无法完成,因为其中的文件夹或文件已在另一个程序中打开,请关闭该文件夹或文件,然后重试”.   步骤阅 ...

随机推荐

  1. LightOJ 1094 - Farthest Nodes in a Tree(树的直径)

    http://acm.hust.edu.cn/vjudge/contest/121398#problem/H 不是特别理解,今天第一次碰到这种问题.给个链接看大神的解释吧 http://www.cnb ...

  2. Pojo类(plain ordinary java object)

    POJO有一些private的参数作为对象的属性.然后针对每个参数定义了get和set方法作为访问的接口.例如:public class User {private long id;private S ...

  3. Entity Framework 6.0 源码解读笔记(一)

    internal static TResult ExecuteSingle<TResult>(IEnumerable<TResult> query, Expression qu ...

  4. [转]Sql server2005中如何格式化时间日期

    ) -- mon dd yyyy hh:mmAM (or PM) ) -- mm/dd/yyyy - 10/02/2008 ) -- yyyy.mm.dd -- 2008.10.02 ) -- dd/ ...

  5. delphi 10.1 berlin最新的开发框架:咏南中间件+咏南开发框架,购买后提供全部的源码

    咏南中间件+咏南开发框架支持最新的delphi 10.1(berlin),老用户提供免费升级. 购买提供:中间件源码 附带福利(赠送): CS开发框架源码BS开发框架源码移动APP源码中间件集群源码二 ...

  6. 管理表空间和数据文件<六>

    数据库管理 -- 管理表空间和数据文件  介绍 表空间是数据库的逻辑组成部分.从物理上讲,数据库数据存放在数据文件中:从逻辑上讲,数据库则是存放在表空间中,表 空间由一个或多个数据文件组成. 数据库 ...

  7. mysql 常用配置

    1. 帐号不允许从远程登陆,只能在localhost 这个时候只要在localhost的那台电脑,登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从“loc ...

  8. 4.13-4.17c语言学习

    这周学习开始接触c语言,使用的工具是c-free5,主要是把之前的一些函数流程图通过编写代码实现运行,本周最后一天的作业是做简易的atm机运行逻辑程序,是在main主函数外附加使用void函数,其主要 ...

  9. Linux挂载磁盘

    查看 fdisk –l 挂载 mount 磁盘 目录 参考地址:http://blog.csdn.net/tianlesoftware/article/details/5642883 卸载 umoun ...

  10. hdu 4647 - Another Graph Game(思路题)

    摘自题解: 若没有边权,则对点权从大到小排序即可.. 考虑边,将边权拆成两半加到它所关联的两个点的点权中即可. ..因为当两个人分别选择不同的点时,这一权值将互相抵消. 代码如下: #include ...