当前位置: 代码迷 >> PB >> 浏览文件夹 对话框,该怎么处理
  详细解决方案

浏览文件夹 对话框,该怎么处理

热度:465   发布时间:2016-04-29 07:38:11.0
浏览文件夹 对话框
[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
  相关解决方案