如题,就是像CommonDialog那种对话框,主要选择路径就可以的!
先谢谢诸位了
先谢谢诸位了
解决方案 »
- 拜求高手,这个CDO发送邮件,邮件收到后发现,正文(在text1中输入)中的中文字符会全部变成问号???(英文字符没问题的),怎么解决?
- 最高境界
- 数组升序
- 如何将combo的值显示在flexgrid里?
- 怎样动态修改文本框的字体和字号?
- 在VB中如何使用EXCEL函数
- 如何让treeview拖动接点时,如果超出视图范围时,scroll自动滚动
- 请帮忙解决MSChart控件赋值的问题!!
- 众为师傅好!我想用自己的程序生成另一个可执行文件该怎么做?
- 在VB中如何获得文件的默认图标?(好象要调很多API)
- # # # # VC编写的DLL返回字符串的问题!!!在线等,解决马上给分!!!
- 如何显示/隐藏所有窗口标题中含有指定字符的窗口?
Lib "shell32.dll" Alias "SHBrowseForFolderA" _
(lpBrowseInfo As BROWSEINFO) As Long
Private Declare Function SHGetPathFromIDList _
Lib "shell32.dll" _
(ByVal pidl As Long, _
pszPath As String) As LongPrivate Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlage As Long
lpfn As Long
lparam As Long
iImage As Long
End TypePublic Function ShowDir(MehWnd As Long, _
DirPath As String, _
Optional Title As String = "请选择文件夹:", _
Optional flage As Long = &H1, _
Optional DirID As Long) As Long
Dim BI As BROWSEINFO
Dim TempID As Long
Dim TempStr As String
TempStr = String$(255, Chr$(0))
With BI
.hOwner = MehWnd
.pidlRoot = 0
.lpszTitle = Title + Chr$(0)
.ulFlage = flage
End With
TempID = SHBrowseForFolder(BI)
DirID = TempID
If SHGetPathFromIDList(ByVal TempID, ByVal TempStr) Then
DirPath = Left$(TempStr, InStr(TempStr, Chr$(0)) - 1)
ShowDir = -1
Else
ShowDir = 0
End If
End Function
Private Sub Command1_Click()
ShowDir Me.hWnd, App.Path
End Sub
以上代码保存于: SourceCode Explorer(源代码数据库)
复制时间: 2005-11-11 19:32:08
软件版本: 1.0.882
软件作者: Shawls
E-Mail: [email protected]
QQ: 9181729
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 TypeConst BIF_RETURNONLYFSDIRS = &H1Private pidl As LongPrivate Declare Function
SHGetPathFromIDList _
Lib "shell32.dll" Alias
"SHGetPathFromIDListA" _
(ByVal pidl As Long, ByVal
pszPath As String) As LongPrivate Declare Function
SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" _
(lpBrowseInfo As BROWSEINFO) As Long
双击命令按钮,写如下代码: Private Sub command1_Click()
Dim bi As BROWSEINFO
Dim r As Long
Dim pidl As Long
Dim path As String
Dim pos As Integer 句柄
bi.hOwner = Me.hWnd 展开根目录
bi.pidlRoot = 0& 列表框标题
bi.lpszTitle = "请选择软件安装路径:"
规定只能选择文件夹,其他无效bi.ulFlags = BIF_RETURNONLYFSDIRS 调用API函数显示列表框pidl = SHBrowseForFolder(bi) 利用API函数获取返回的路径
path = Space$(512)
r = SHGetPathFromIDList(ByVal pidl&, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
Text1 = Left(path, pos - 1)
Else: Text1 = ""
End If
End Sub 运行此程序,单击命令按钮,就可以看到和资源管理器中一样的“所有文件夹”列表了。 此程序在中文WIN95/98、中文VB6.0专业版下调试通过。
以上代码保存于: SourceCode Explorer(源代码数据库)
复制时间: 2005-11-11 19:32:25
软件版本: 1.0.882
软件作者: Shawls
E-Mail: [email protected]
QQ: 9181729
你说的是这个?
Private Type BrowseInfo
hWndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
Const BIF_RETURNONLYFSDIRS = 1
Const MAX_PATH = 260
Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
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 Sub Form_Load()
'KPD-Team 1998
'URL: http://www.allapi.net/
'[email protected]
Dim iNull As Integer, lpIDList As Long, lResult As Long
Dim sPath As String, udtBI As BrowseInfo With udtBI
'Set the owner window
.hWndOwner = Me.hWnd
'lstrcat appends the two strings and returns the memory address
.lpszTitle = lstrcat("C:\", "")
'Return only if the user selected a directory
.ulFlags = BIF_RETURNONLYFSDIRS
End With 'Show the 'Browse for folder' dialog
lpIDList = SHBrowseForFolder(udtBI)
If lpIDList Then
sPath = String$(MAX_PATH, 0)
'Get the path from the IDList
SHGetPathFromIDList lpIDList, sPath
'free the block of memory
CoTaskMemFree lpIDList
iNull = InStr(sPath, vbNullChar)
If iNull Then
sPath = Left$(sPath, iNull - 1)
End If
End If MsgBox sPath
End Sub