文件夹选择对话框的使用

 

文件夹选择对话框的使用

一. 示例代码

 

CString iDir;
 BROWSEINFO bi;
 bi.hwndOwner = this->m_hWnd;
 bi.pidlRoot = NULL;
 bi.pszDisplayName = m_Dir.GetBuffer(512);
 bi.lpszTitle = _T("选择保存的文件夹");
 bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_EDITBOX | BIF_BROWSEFORCOMPUTER;
 bi.lpfn = NULL;
 bi.lParam = 0;
 bi.iImage = 0;
 ITEMIDLIST* pidl = ::SHBrowseForFolder(&bi);

 if (::SHGetPathFromIDList(pidl, m_Dir.GetBuffer(512)))
    m_Dir.ReleaseBuffer();

 

二. ROWSEINFO结构说明

 

hwndOwner:                          对话框的所有者
pidlRoot:                                从何根路径开始展开文件夹,缺省情况下从“桌面”开始展开.
pszDisplayName:                指向一个缓存,该缓存返回用户选中的文件夹的显示名称,
                                                缓存的大小设置为MAX_PATH
lpszTitle:                               对话框上的treeview控件上方显示的标题, 并不是对话框的标题
ulFlags:                                显示标志控制项.
                                               BIF_RETURNONLYFSDIRS, 只有当用户选中的是文件夹时"确定"按钮才有效
                                               BIF_BROWSEFORCOMPUTER, 只有选中"我的电脑"时"确定"按钮才有效
                                               BIF_EDITBOX, 在对话框上显示一个Edit,允许用户输入选中项的名称
                                               BIF_STATUSTEXT, 界面上包含一块statu区域, 回调函数通过向对话框发送
                                                                 BFFM_SETSTATUSTEXT消息设置静态文本
                                               BIF_VALIDATE, 当用户在Edit中输入不正确的名字时,向对话框发送
                                                                 BFFM_VALIDATEFAILED消息,并调用对话框的回调函数处理该消息
lpfn                                       设置处理对话框事件的回调函数
lParam                                对话框传递给回调函数的参数
iImage                                返回与选中文件夹关联的图片的index , 该index是图片在系统ImageList中的index值.

 

三.  SHBrowseForFolder函数

view plaincopy to clipboardprint?
LPITEMIDLIST WINAPI SHBrowseForFolder(  
  LPBROWSEINFO lpbi  
); 

该函数显示文件夹选择对话框, 并允许用户选择文件夹.返回值是指向一个ITEMIDLIST结构的指针, 该结构指定根目录下用户选中的文件夹. 如果在对话框上用户选择的 "取消"按钮, 则返回NULL四.  SHGetPathFromIDList函数

四.  SHGetPathFromIDList函数

WINSHELLAPI BOOL WINAPI SHGetPathFromIDList(
  LPCITEMIDLIST pidl,
  LPSTR pszPath
);

该函数将ITEMIDLIST结构转换为文件系统路径.
pidl是待转换的ITEMIDLIST的指针
pszPath是转换后返回的字符串, 该字符串的最大长度为PATH_MAX

如果转换成功返回TRUE, 否则为FALSE

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ShardowM/archive/2008/06/06/2516213.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值