[VB]用API打开浏览文件夹对话框,选择文件夹
2010-11-07 21:52
363 查看
1 Option Explicit
2
3 Private Type BROWSEINFO
4 hOwner As Long
5 pidlRoot As Long
6 pszDisplayName As String
7 lpszTitle As String
8 ulFlags As Long
9 lpfn As Long
lParam As Long
iImage As Long
End Type
Private Const BIF_RETURNONLYFSDIRS = &H1 '浏览文件夹
Private Const BIF_NEWDIALOGSTYLE = &H40 '新样式(有新建文件夹按钮,可调整对话框大小)
Private Const BIF_NONEWFOLDERBUTTON = &H200 '新样式中,没有新建按钮(只调大小)
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" _
(ByVal pidl As Long, _
ByVal pszPath As String) As Long
Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" _
(lpBrowseInfo As BROWSEINFO) As Long
Public Function GetFolderName(hWnd As Long, Text As String) As String
Dim bi As BROWSEINFO
Dim pidl As Long
Dim path As String
With bi
.hOwner = hWnd
.pidlRoot = 0& '根目录,一般不需要改
.lpszTitle = Text
.ulFlags = BIF_RETURNONLYFSDIRS '根据需要调整
End With
pidl = SHBrowseForFolder(bi)
path = Space$(512)
If SHGetPathFromIDList(ByVal pidl, ByVal path) Then
GetFolderName = Left(path, InStr(path, Chr(0)) - 1)
End If
End Function
2
3 Private Type BROWSEINFO
4 hOwner As Long
5 pidlRoot As Long
6 pszDisplayName As String
7 lpszTitle As String
8 ulFlags As Long
9 lpfn As Long
lParam As Long
iImage As Long
End Type
Private Const BIF_RETURNONLYFSDIRS = &H1 '浏览文件夹
Private Const BIF_NEWDIALOGSTYLE = &H40 '新样式(有新建文件夹按钮,可调整对话框大小)
Private Const BIF_NONEWFOLDERBUTTON = &H200 '新样式中,没有新建按钮(只调大小)
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" _
(ByVal pidl As Long, _
ByVal pszPath As String) As Long
Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" _
(lpBrowseInfo As BROWSEINFO) As Long
Public Function GetFolderName(hWnd As Long, Text As String) As String
Dim bi As BROWSEINFO
Dim pidl As Long
Dim path As String
With bi
.hOwner = hWnd
.pidlRoot = 0& '根目录,一般不需要改
.lpszTitle = Text
.ulFlags = BIF_RETURNONLYFSDIRS '根据需要调整
End With
pidl = SHBrowseForFolder(bi)
path = Space$(512)
If SHGetPathFromIDList(ByVal pidl, ByVal path) Then
GetFolderName = Left(path, InStr(path, Chr(0)) - 1)
End If
End Function
相关文章推荐
- vb 利用API 打开文件浏览窗口 选择返回目录
- VB 调用系统API 选择文件夹 代码
- vb中5种打开文件夹浏览框的方法总结(转)
- MFC实现打开、保存文件对话框和浏览文件夹对话框,把代码直接拷贝到要响应的按钮函数下面就行了
- c# 打开、保存文件对话框 和 文件夹选择对话框
- Qt-编程模块 001: 浏览(选择)、打开 文件和文件夹(目录) --- 如何让按钮**记忆上次打开的文本路径**的功能
- MFC打开对话框和浏览文件夹操作
- window下打开文件选择对话框和浏览对话框的方式
- 在VB中两种方式显示文件夹浏览对话框
- MFC实现打开、保存文件对话框和浏览文件夹对话框
- 打开对话框--选择一个文件夹
- C#文件夹选择框的使用(C#选择文件夹,C# 打开文件夹,C# 浏览文件夹,C#怎么选择文件夹)
- VC++打开、保存文件对话框和浏览文件夹对话框
- 文件选择对话框,文件夹浏览
- 打开文件夹选择对话框
- VC++:打开、保存文件对话框和浏览文件夹对话框
- 在VC中打开浏览文件夹对话框
- MFC实现打开、保存文件对话框和浏览文件夹对话框(转)
- MFC实现打开、保存文件对话框和浏览文件夹对话框
- VB 选择目录对话框实现(API)