VB 选择目录对话框实现(API)
来源:互联网 发布:java如何打印word文档 编辑:程序博客网 时间:2024/05/22 02:30
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 Function getFolder(ByVal title As String) As String
Dim iNull As Integer, lpIDList As Long, lResult As Long
Dim sPath As String, udtBI As BrowseInfo
With udtBI
'设置弹出的对话框的父窗口句柄
.hWndOwner = Me.hWnd
.lpszTitle = lstrcat(title, "") '标题
.ulFlags = BIF_RETURNONLYFSDIRS
End With
lpIDList = SHBrowseForFolder(udtBI)
If lpIDList Then
sPath = String$(MAX_PATH, 0)
SHGetPathFromIDList lpIDList, sPath
CoTaskMemFree lpIDList
iNull = InStr(sPath, vbNullChar)
If iNull Then
sPath = Left$(sPath, iNull - 1)
End If
End If
getFolder = sPath
End Function
Private Sub Command1_Click()
Text1.Text = getFolder("请选择文件夹")
End Sub
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 Function getFolder(ByVal title As String) As String
Dim iNull As Integer, lpIDList As Long, lResult As Long
Dim sPath As String, udtBI As BrowseInfo
With udtBI
'设置弹出的对话框的父窗口句柄
.hWndOwner = Me.hWnd
.lpszTitle = lstrcat(title, "") '标题
.ulFlags = BIF_RETURNONLYFSDIRS
End With
lpIDList = SHBrowseForFolder(udtBI)
If lpIDList Then
sPath = String$(MAX_PATH, 0)
SHGetPathFromIDList lpIDList, sPath
CoTaskMemFree lpIDList
iNull = InStr(sPath, vbNullChar)
If iNull Then
sPath = Left$(sPath, iNull - 1)
End If
End If
getFolder = sPath
End Function
Private Sub Command1_Click()
Text1.Text = getFolder("请选择文件夹")
End Sub
- VB 选择目录对话框实现(API)
- VB用API实现各种对话框(总结)
- VB用API实现各种对话框(总结)
- 用VB实现目录选择+浏览
- VC++实现文件选择对话框 及目录
- 调用API实现路径选择对话框
- [MFC]选择目录对话框和选择文件对话框(ZZ)
- VC实现在浏览目录对话框中选择目录
- VB中用API实现字体公用对话框例子
- delphi 选择目录对话框(SelectDirectory 函数)
- 目录选择对话框
- 临时选择目录对话框
- 目录选择对话框
- 目录选择对话框
- 目录选择对话框
- 目录选择对话框
- 目录选择对话框
- VC++选择目录对话框
- Oracle卸载
- 确认法院违法申请书
- 封装好的一个数据接口
- 关于Flex 和 flash的关系
- 伊拉克被占领后出现的危机1
- VB 选择目录对话框实现(API)
- 快报。。快报
- 委托(5)代理动态方法
- vb调用存储过程
- 【图文】地震级别是如何判定的?
- 详解Spring的依赖/依赖注入(DI)
- smarty实例教程一
- word文档怎么传到网上呀?
- request.getRealPath的替代