[img=http://hi.csdn.net/space-5628048-do-album-picid-883500.html][/img]
PB 如何实现上图的功能
------解决方案--------------------
http://topic.csdn.net/u/20110411/11/3cfdf042-0060-4d01-8d51-a35496af86d2.html
api声明
FUNCTION Long SHBrowseForFolder (REF BROWSEINFO lpBrowseInfo)LIBRARY "shell32.dll" ALIAS FOR "SHBrowseForFolderA"
FUNCTION Long SHGetPathFromIDList(Long pidList, REF string lpBuffer)LIBRARY "shell32.dll" ALIAS FOR "SHGetPathFromIDListA"
相关结构体
Type BROWSEINFO From structure
Long hOwner
Long pidlRoot
String pszDisplayName
String lpszTitle
Long ulFlags
Long lpfn
Long lParam
Long iImage
End Type
代码
//browse filepath
Long lpIDList
String ls_FileFolderPath
//相关常量
CONSTANT Long MAX_PATH = 260
CONSTANT Long BIF_BROWSEFORCOMPUTER = 4096
CONSTANT Long BIF_BROWSEFORPRINTER = 8192
CONSTANT Long BIF_BROWSEINCLUDEFILES = 16384
CONSTANT Long BIF_BROWSEINCLUDEURLS = 128
CONSTANT Long BIF_DONTGOBELOWDOMAIN = 2
CONSTANT Long BIF_EDITBOX = 16
CONSTANT Long BIF_NEWDIALOGSTYLE = 64
CONSTANT Long BIF_RETURNFSANCESTORS = 8
CONSTANT Long BIF_RETURNONLYFSDIRS = 1
CONSTANT Long BIF_SHAREABLE = 32768
CONSTANT Long BIF_STATUSTEXT = 4
CONSTANT Long BIF_USENEWUI = 64
CONSTANT Long BIF_VALIDATE = 32
//=======================================
BrowseInfo lstr_BroInfo
//初始化文件夹浏览对话框结构
lstr_BroInfo.hOwner = Handle(Parent)
lstr_BroInfo.lpszTitle = "请选择要浏览的文件夹:"
//允许浏览计算机
lstr_BroInfo.ulFlags = BIF_BROWSEFORCOMPUTER + BIF_USENEWUI
//显示文件夹浏览对话框
lpIDList = SHBrowseForFolder(lstr_BroInfo)
ls_FileFolderPath = Space(MAX_PATH)
SHGetPathFromIDList(lpIDList, ls_FileFolderPath)
IF lpIDList <> 0 THEN
messagebox('',ls_FileFolderPath)
end if