SHBrowseForFolder默认目录设置Demo
SHBrowseForFolder 的默认目录设置功能,挺适合做工具类软件的目录选择。Demo 里写得还不错,代码简洁、注释清楚。如果你之前没玩过 Windows API 的目录选择对话框,这个例子上手挺快的。BROWSEINFO 结构怎么填、回调函数怎么写都给你整明白了。
SHBrowseForFolder 的默认目录设置,是 Windows API 里比较实用的一招。适合你想让用户选个文件夹,还得指定默认打开位置的时候用。比如打开“我的文档”或者“桌面”作为默认路径,体验好多。
用起来不难,主要靠填好BROWSEINFO
结构。像lpstrTitle
设置标题,pidlRoot
决定默认目录。默认位置可以用SHGetSpecialFolderLocation
获取,比如桌面、文档这些。
Demo 项目里流程蛮清晰的,从包含头文件开始,一步步搞清楚回调怎么设、路径怎么拿。回调函数其实不写也行,但写了可以做些细节优化,比如初始化时定位目录啥的。
拿到用户选的文件夹后,用SHGetPathFromIDList
转成字符串路径,就能用在程序里了。别忘了用CoTaskMemFree
释放资源,毕竟这些指针是系统分配的。
如果你做的是 C++桌面软件,或者接触 Windows Shell 开发比较多,这个 Demo 真挺值得看一下。代码不长,逻辑清晰,适合改成你自己的功能模块。
想进一步了解 Windows API 的朋友,可以顺手看看这些资料:Windows API 基础编程入门 C++语言版、C、C++、windows 编程.ppt,都还不错。
Demo.zip
预估大小:14个文件
Demo
文件夹
stdafx.cpp
206B
Demo.rc
9KB
res
文件夹
Demo.rc2
792B
Demo.ico
66KB
stdafx.h
2KB
DemoDlg.cpp
3KB
targetver.h
314B
DemoDlg.h
768B
65.18KB
文件大小:
评论区