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,都还不错。

zip
Demo.zip 预估大小:14个文件
folder
Demo 文件夹
file
stdafx.cpp 206B
file
Demo.rc 9KB
folder
res 文件夹
file
Demo.rc2 792B
file
Demo.ico 66KB
file
stdafx.h 2KB
file
DemoDlg.cpp 3KB
file
targetver.h 314B
file
DemoDlg.h 768B
file
Demo.cpp 2KB
file
Demo.h 493B
file
Demo.vcxproj 6KB
file
resource.h 1KB
file
ReadMe.txt 4KB
file
Demo.sln 879B
zip 文件大小:65.18KB