首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB中怎么通过对话框可以选择路径(文件夹)

2012-04-06 
VB中如何通过对话框可以选择路径(文件夹)?默认的通用对话框好象只能够选择文件,是针对某个具体文件的.但是

VB中如何通过对话框可以选择路径(文件夹)?
默认的通用对话框好象只能够选择文件,是针对某个具体文件的.但是现在有需求让用户通过通用对话框设置/确定路径(文件夹),那么这该如何实现呢?

请高手们指点一下该怎样做?

[解决办法]

VB.NET code
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BROWSEINFO) As LongPrivate Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As LongPrivate Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As LongPrivate 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 LongEnd TypePrivate 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 StringEnd 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 IfEnd Function
[解决办法]
用API函数实现文件夹列表(VB6): http://www.zhujiangroad.com/html/soft/s3742.html

VB6中用API函数实现文件夹列表: http://www.ipv6.in/articleview/2005-12-6/article_view_3598.htm
[解决办法]
要什么控件啊,API函数呼叫而已。
来迟了。被人抢先回答了。

热点排行