请高手们指点一下该怎样做?
6 个解决方案
#1
补充一下,最好能用控件实现
#2
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BROWSEINFO) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long
Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
Private Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Private Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type
'=======================================
'打开文件夹
'=======================================
Public Function GetDirName() As String
Dim bi As BROWSEINFO
Dim r As Long
Dim pidl As Long
Dim path As String
Dim pos As Integer
bi.pidlRoot = 0&
bi.lpszTitle = srtTitle
bi.ulFlags = 1
pidl = SHBrowseForFolder(bi)
path = Space$(512)
r = SHGetPathFromIDList(ByVal pidl&, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
GetDirName = Left(path, pos - 1)
Else: GetDirName = ""
End If
End Function
#3
用API函数实现文件夹列表(VB6): http://www.zhujiangroad.com/html/soft/s3742.html
VB6中用API函数实现文件夹列表: http://www.ipv6.in/articleview/2005-12-6/article_view_3598.htm
VB6中用API函数实现文件夹列表: http://www.ipv6.in/articleview/2005-12-6/article_view_3598.htm
#4
要什么控件啊,API函数呼叫而已。
来迟了。被人抢先回答了。
来迟了。被人抢先回答了。
#5
多谢各位高手帮忙,问题已解决,结贴!
#6
Vb.net 2005已经不支持TYpe了,改为structure,你这个代码是vb.net的哪个版本啊
#1
补充一下,最好能用控件实现
#2
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BROWSEINFO) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long
Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
Private Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Private Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type
'=======================================
'打开文件夹
'=======================================
Public Function GetDirName() As String
Dim bi As BROWSEINFO
Dim r As Long
Dim pidl As Long
Dim path As String
Dim pos As Integer
bi.pidlRoot = 0&
bi.lpszTitle = srtTitle
bi.ulFlags = 1
pidl = SHBrowseForFolder(bi)
path = Space$(512)
r = SHGetPathFromIDList(ByVal pidl&, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
GetDirName = Left(path, pos - 1)
Else: GetDirName = ""
End If
End Function
#3
用API函数实现文件夹列表(VB6): http://www.zhujiangroad.com/html/soft/s3742.html
VB6中用API函数实现文件夹列表: http://www.ipv6.in/articleview/2005-12-6/article_view_3598.htm
VB6中用API函数实现文件夹列表: http://www.ipv6.in/articleview/2005-12-6/article_view_3598.htm
#4
要什么控件啊,API函数呼叫而已。
来迟了。被人抢先回答了。
来迟了。被人抢先回答了。
#5
多谢各位高手帮忙,问题已解决,结贴!
#6
Vb.net 2005已经不支持TYpe了,改为structure,你这个代码是vb.net的哪个版本啊