Диалог выбора нескольких каталогов (папок) за один раз

Программирование на Visual Basic for Applications
annt
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 25.02.2005 (Пт) 14:51

Диалог выбора нескольких каталогов (папок) за один раз

Сообщение annt » 25.02.2005 (Пт) 15:03

Подскажите кто знает как создать диалог выбора нескольких каталогов (директориев), чтобы в диалоговом окне можно было выбрать сразу несколько папок, и затем получить их список?

У меня есть код, который выводит окно выбора папки, но в нем можно выбрать только одну папку:

Private Type BrowseInfo
hwndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As String
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type

Dim strPath As String
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 Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)

Public Function BrowseForFolder(hwndOwner As Long, sPrompt As String) As String
Const BIF_RETURNONLYFSDIRS = 1, MAX_PATH = 260
Dim intNull As Integer, lngIdList As Long
Dim udtBI As BrowseInfo

With udtBI
.hwndOwner = hwndOwner
.lpszTitle = sPrompt
.ulFlags = BIF_RETURNONLYFSDIRS
End With
lngIdList = SHBrowseForFolder(udtBI)
If lngIdList Then
strPath = String$(MAX_PATH, 0)
SHGetPathFromIDList lngIdList, strPath
CoTaskMemFree lngIdList
intNull = InStr(strPath, vbNullChar)
If intNull Then strPath = Left$(strPath, intNull - 1)
End If
BrowseForFolder = strPath
End Function

Public Sub browse_folder()
fold = BrowseForFolder(0, "")
End Sub

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 25.02.2005 (Пт) 15:07

Нельзя. Пиши свой диалог.
Lasciate ogni speranza, voi ch'entrate.

annt
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 25.02.2005 (Пт) 14:51

Диалог выбора нескольких каталогов (папок) за один раз

Сообщение annt » 26.02.2005 (Сб) 10:52

Дополнение
При выполнениии кода - окно выбора папки каждый раз появляется в верхнем левом углу экрана. Кто нибудь знает как сделать, чтобы оно появлялось в центре?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 28.02.2005 (Пн) 9:20

Укажи Owner и будет как положено открываться (Me.hWnd).
Lasciate ogni speranza, voi ch'entrate.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

    TopList  
cron