SHBrowseForFolder函数
来源:互联网 发布:python编写环境 编辑:程序博客网 时间:2024/06/11 02:41
下面的例子中返回路径,如果没有选,返回"",选择了路径,则返回选择的路径。
char *GetPath(HWND hWnd,char *pBuffer)
{
BROWSEINFO bf;
LPITEMIDLIST lpitem;
memset(&bf,0,sizeof BROWSEINFO);
bf.hwndOwner=hWnd;
bf.lpszTitle="选择路径";
bf.ulFlags=BIF_RETURNONLYFSDIRS; //属性你可自己选择
lpitem=SHBrowseForFolder(&bf);
if(lpitem==NULL) //如果没有选择路径则返回 0
return "";
//如果选择了路径则复制路径,返回路径长度
SHGetPathFromIDList(lpitem,pBuffer);
return pBuffer;
}
下面我们来解释一下这个函数用到的一些值的含义。
1. BROWSEINFO
它是一个结构, 原型是
typedef struct _browseinfo {
HWND hwndOwner; // 弹出的dialog的父窗体的句柄
LPCITEMIDLIST pidlRoot; // 指向一个ITEMIDLIST的指针,我们会在后边介绍ITEMIDLIST结构,可空
LPSTR pszDisplayName; // 指向一个buffer,这个buffer用来存放用户选中的目录,buffer的size为MAX_PATH
LPCSTR lpszTitle; //指向一个非空的string,用来显示树目录之上的指示信息
UINT ulFlags; // 指出了显示的文件夹的类型
BFFCALLBACK lpfn; //简单的记为NULL
LPARAM lParam; // 当lpfn不为空时,把dialogbox的值传给回调函数lpfn
int iImage; // 系统的图标list的索引,当用户选中目录的时候,得到这个索引
} BROWSEINFO, *PBROWSEINFO, *LPBROWSEINFO;
ulFlags的可能取值为:
BIF_BROWSEFORCOMPUTER ——只返回"我的电脑",当选中"我的电脑"之外的目录时,OK键为灰色
BIF_BROWSEFORPRINTER ——只返回"打印机",当选中"打印机"之外的目录时,OK键为灰色
BIF_DONTGOBELOWDOMAIN ——不包括"网上邻居"
BIF_RETURNFSANCESTORS ——只返回"我的文件",当选中"我的文件"之外的目录时,OK键为灰色
BIF_RETURNONLYFSDIRS ——同上
BIF_STATUSTEXT ——Includes a status area in the dialog box. The callback can set the status text by sending messages to the dialog box.
2. ITEMIDLIST
是一个结构,指明了默认浏览的根文件夹的位置,可以为空,那样的话,默认为桌面文件夹的文件目录.
原型为
typedef struct _ITEMIDLIST
{
SHITEMID mkid; // list of item identifers
} ITEMIDLIST, * LPITEMIDLIST;
typedef const ITEMIDLIST * LPCITEMIDLIST;
3. SHGetPathFromIDList函数
原型是
WINSHELLAPI BOOL WINAPI SHGetPathFromIDList(
LPCITEMIDLIST pidl,
LPSTR pszPath
);
反正记住配套使用就行了,哈哈~~
如果是在bcb环境中使用,那么如果提示不能识别BROWSEINFO,则需加入头文件#i nclude <ShellAPI.h>
,然后在对应的.cpp的include之前#define NO_WIN32_LEAN_AND_MEAN
来自http://baby118.blog.163.com/blog/static/727937382009524101746868/?fromdm&fromSearch&isFromSearchEngine=yes- SHBrowseForFolder函数
- SHBrowseForFolder函数
- SHBrowseForFolder函数
- API函数SHBrowseForFolder用法
- SHBrowseForFolder
- ShBrowseForFolder
- SHBrowseForFolder
- SHBrowseForFolder
- SHBrowseForFolder
- vc选择路径(SHBrowseForFolder函数)
- VC选择文件夹路径对话框 - SHBrowseForFolder 函数
- 使用SHBrowseForFolder函数打开文件目录对话框
- 使用SHBrowseForFolder函数打开文件目录对话框
- 使用SHBrowseForFolder函数打开文件目录对话框
- 使用SHBrowseForFolder函数打开文件目录对话框
- 使用SHBrowseForFolder函数打开文件目录对话框
- 使用SHBrowseForFolder函数打开文件目录对话框
- Shell函数;COM对象;浏览文件夹;SHBrowseForFolder;BROWSEINFO;SHGetPathFromIDList
- FLEX 反射
- 图形化阶乘的源代码
- oracle高效分页存储过程
- 广邀android 爱好者讨论和学习
- android开发平台搭建
- SHBrowseForFolder函数
- 登陆
- 字符串与整数、浮点数、无符号整数之间的转换常用函数
- ORACLE 最精简的跟新次数、访问次数、跟帖次数 的SQL语句
- Ubuntu转换文件编码格式(gbk to utf-8 )
- VS2005,VS2008,VS2010工程文件和解决方案的区别
- ubuntu的一些使用
- AC算法详解
- 数据结构应用-----------括号匹配的检验