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. SpringMVC在传递date型数据时的配置

    查阅了好多资料, 最后才发现原来只是添加一个方法就能解决的问题, 但是看了半天又没看明白, 只是知道这么写就能成功, 先记下来, 以后再研究吧, 在配置好springMVC的时候, 可以在前台的for ...

  2. 磁盘配额quota应用

    1.文件系统支持 quota是针对整个文件系统来进行规划,所以我们得先查一下/home是否是个独立的文件系统. [root@Monitor home]# df -h /home Filesystem ...

  3. Java范型随笔

    最近在帝都好无聊啊, 排遣寂寞就只有让自己不要停下来,不断的思考了 QWQ; 最近做ndk, java有点忘了,突然看到了一些java范型方面的问题, 踌躇了一会, 想着想着,决定还是写个随笔记录下来 ...

  4. 6本Android开发必备图书

    学习一样新事物或许有多种方式,报培训班,看视频,向高手请教等等,但一本好书往往可以让你少走很多弯路,事半功倍.今天与大家分享一些Android开发值得一读的书籍,希望对新手安卓开发者们有所帮助. 1. ...

  5. C# 基础(6)--Winform

    WinForm 简称,Windows Form ,调用.Net框架. Return 只是退出当前方法. MessageBox.Show("输入的Email地址是非法的!"); 把整 ...

  6. C# 基础(3)

    跳转语句 Goto(现在一般不使用) 标志位 Flag true false 常量:(不可改变的量) 语法: Const 类型 变量名 = 常量值 在定义时赋值,其他地方不能赋值 枚举 是自己定义了一 ...

  7. java开发中的一些工具软件

    1. XJad, 反编译工具,类似于.Net中的Refractor.可以反编译单个jar文件或一个文件夹下的class文件,效果还不错. 2. dirtyJOE, class文件直接修改工具.有时想修 ...

  8. 利用Access-Control-Allow-Origin响应头解决跨域请求

    //允许任何域名访问 header("Access-Control-Allow-Origin: *"); //指定域名允许跨域 header("Access-Contro ...

  9. document.write()

    以前一直以为document.write()就一定会清空文档里面的所有内容,一直没有去尝试,最近才知道原来是要在特定的情况下document.write才会清空文档里面所有内容的,在这里,觉得应该告诉 ...

  10. github 仓库管理

    一.远程仓库有master和dev分支1. 克隆代码 git clone https://github.com/master-dev.git # 这个git路径是无效的,示例而已 2. 查看所有分支 ...