西游记的意义:[VB] 怎样让CommonDialog控件打开文件夹

来源:百度文库 编辑:中科新闻网 时间:2024/05/02 12:24:08
如题,通常CommonDialog只能打开文件,而我想让其选择指定的文件夹。原因是CommonDialog更接近XP风格,而用DirListBox达不到这样的效果。
请教高手如何才能做到?
在下感激不尽!

用API吧,如下,可以选择文件夹并返回路径

'单击command3,用WINDOWS API 函数浏览文件夹并返回路径到text2

Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias _
"SHGetPathFromIDListA" (ByVal pIdl As Long, ByVal pszPath As String) As Long

Private Type BrowseInfo
hwndOwner As Long
piDLroot As Long
pszdisplayName As String
lpsztitle As String
ulFlags As Long
lpfncallback As Long
lParam As Long
iImage As Long
End Type

Private Sub Command3_Click()
Dim bi As BrowseInfo
Dim folderid As Long
Dim pb As String
With bi
.hwndOwner = Me.hWnd
.lpsztitle = "把输出的文件存放到这个文件夹:"
.ulFlags = 3
End With
folderid = SHBrowseForFolder(bi)
If folderid = 0 Then Exit Sub
pb = String$(260, 0)
SHGetPathFromIDList folderid, pb
pb = Left$(pb, InStr(pb, vbNullChar) - 1)
Text2.Text = pb
End Sub

使用API吧,SHBrowseForFolder 这个API可以帮你实现,代码太长不能发这里,有需要M我。