Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование, связанное с MS Office > Где достать кнопку New Folder?


Автор: Kindgott 1.12.2004, 18:46
Доброго всем времени суток.

Передо мной встала проблема выбора директории при помощи стандартных окон:
В стандартном диалоговом окне GetOpenFileName из comdlg32.dll для выбора файла меня все устраивает, зато вот в BrowseForFolder мне не нравится то что там не хватает элементарного - кнопки создания новой папки. Получается, что юзер должен специально лазить и создавать папку, чтобы она уже была к моменту выбора. Форменное безобразие! smile

Сопсно, вопрос:
Есть ли какой-нибудь параметр для GetOpenFileName чтобы его можно было заставить открывать директории (а не только файлы), или вообще что-нить другое, предназначенное для выбора директорий, содержащее в себе кнопки создания/удаления новой папки.


Вся эта байда используется в базе *.mdb
smile потомушто я очень глупый


Всем спасибо за внимание. smile

Автор: Cashey 3.12.2004, 09:27
На сколько я знаю, Билл такой возможности не предусмотрел. Пиши свое диалоговое окно, что еще можно сказать smile

Автор: Гость_Kindgott 3.12.2004, 15:19
Да как же он не предусмотрел, когда эта ****** ежедневно передо мной мелькает?

Пуск -> Найти -> Файлы и папки -> Где искать: ->Обзор...
(у меня Windows 2000 Professional)


Я видел в msdn текст с указанием поставить в параметр ulFlags для BrowseForDirectory что - то вроде BIF_NEWSTYLE, уверяя что на этом мои мучения окончатся, но ничего подобного не случилось. smile


Да ладно, фиг с ним. Оно не стоит моих нервов - все равно для себя пишу.

Автор: Registr 28.12.2004, 16:04
'*****Функция диалога выбора каталога или его создания. Вид диалога зависит от
'параметра View, так значение 70 позволяет не только выбирать
'существующий каталог, но и создавать новый. Вообщем есть где поэкперементировать
Public Function BrowseForFolder(View As Long, hwndOwner As Long, sPrompt As String) As String

Const MAX_PATH = 260
Dim intNull As Integer
Dim lngIdList As Long
Dim udtBI As BrowseInfo

With udtBI
.hwndOwner = hwndOwner
.lpszTitle = sPrompt
.ulFlags = View
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
'*****Конец функции диалога выбора каталога или его создания*****

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)