文件夹选择对话框的使用
来源:互联网 发布:美声软件 编辑:程序博客网 时间:2024/05/29 09:13
一. 示例代码
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
- 文件夹选择对话框的使用
- 文件夹选择对话框的使用
- 选择文件夹的对话框
- 选择文件夹的对话框
- 选择文件夹的对话框
- “选择文件夹”对话框的封装
- MFC 选择文件夹的对话框
- “选择文件夹”对话框的封装
- 选择文件夹的通用对话框
- 用于选择文件夹的对话框
- MFC 选择文件夹的对话框
- MFC 选择文件夹的对话框
- “选择文件夹”对话框的封装
- MFC选择文件夹的对话框
- MFC选择文件夹的对话框
- 选择文件夹和选择文件的对话框
- 在BCB中使用选择文件夹对话框
- 使用"文件浏览"对话框选择文件夹
- mvc 自学中
- 内存碎片(Memory Fragmentation)(1)
- MSDN库(中文)
- 多么给力的锁啊,呵呵!! 不解释
- Android 按两次back键退出 -- 效率最高版---见到好东西就转啊!
- 文件夹选择对话框的使用
- 从长度为N的数组中找出所有M个元素组合的优化算法
- Perl的字符串操作
- 关于在ODBC中增加数据源的问题
- office插件开发(转)
- Application.MessageBox 详解
- 邻接矩阵存储图的两种遍历方式
- ffmpeg + opencv + pc + arm 完整
- Flex文档API生成工具AsDoc