Страница: 1 |
Доброго времени суток! Как на VB6/.net стандартными ср-ми или с помощью api вызвать стандартное виндошное окошко для выбора директории (в нем список дисков и директорий отображен в виде дерева), не путать с common dialog. В delphi такое есть, но на vb еще не знаю как это сделать. Или может еще какой-нибудь способ есть для наглядного выбора директории (не файла)? Спасибо!
Ты пользуйся поиском на форуме, тут эту фишку недавно замутили. А этот вопрос задаётся с частотой раз в месяц: 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 Private Sub Command1_Click() BrowseForFolder Me.hWnd, "Hi, Select ... " Print strPath End Sub Спасибо! Осталось только еще узнать, когда пользователь выбрал диск или когда нажал на отмену - эта функция всегда что-нибудь возвращает...П ... уже понял - надо Dim strPath As String запихнуть в саму функцию... Страница: 1 |
Вопрос: VB6/.net - как вызвать окно для выбора директории?
Добавлено: 19.05.03 18:53
Автор вопроса:
Gr | Web-сайт:
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа: Padre
ICQ: 346632205
Вопросов: 25
Ответов: 215
Web-сайт:
Профиль | | #1
Добавлено: 19.05.03 22:13
Номер ответа: 2
Автор ответа: Gr
Вопросов: 32
Ответов: 23
Web-сайт:
Профиль | | #2
Добавлено: 20.05.03 11:03
Номер ответа: 3
Автор ответа: Gr
Вопросов: 32
Ответов: 23
Web-сайт:
Профиль | | #3
Добавлено: 20.05.03 12:34