powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как открыть диалог выбора каталога?
6 сообщений из 6, страница 1 из 1
Как открыть диалог выбора каталога?
    #39388516
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Написал так:
Код: plaintext
1.
2.
3.
4.
5.
wchar_t buf[MAX_PATH];
BROWSEINFO MyBROWSEINFO;
MyBROWSEINFO.pszDisplayName = buf;
	
SHBrowseForFolder(&MyBROWSEINFO);



Но отладка проходит все строки, а диалог не открывается! Пробовал найти как заполнить переменную MyBROWSEINFO, но получить Handle родительского окна так и не удалось.

Как сделать эту элементарную задачу?
...
Рейтинг: 0 / 0
Как открыть диалог выбора каталога?
    #39388518
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, есть какой-то ресурс С/С++ с примерами ответов на вопросы типа "Как это сделать?"
...
Рейтинг: 0 / 0
Как открыть диалог выбора каталога?
    #39388541
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Структуры надо нулями инициализировать
Код: plaintext
1.
BROWSEINFO MyBROWSEINFO = {0};



Отладки мало, проверяй что SHBrowseForFolder() возвращает. Если ошибка, то смотри что за ошибка через GetLastError()

Ресурсы в гугле ищи. Для поиска описаловки WinAPI гугли со словом MSDN, например "MSDN SHBrowseForFolder()"
...
Рейтинг: 0 / 0
Как открыть диалог выбора каталога?
    #39388562
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TСтруктуры надо нулями инициализировать
Код: plaintext
1.
BROWSEINFO MyBROWSEINFO = {0};



Отладки мало, проверяй что SHBrowseForFolder() возвращает. Если ошибка, то смотри что за ошибка через GetLastError()

Ресурсы в гугле ищи. Для поиска описаловки WinAPI гугли со словом MSDN, например "MSDN SHBrowseForFolder()"

Спасибо! Инициализация нулями помогла!
Для будущих поколений напишу итоговый вариант:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
wchar_t buf[MAX_PATH], title[MAX_PATH] = L"Выберите каталог, содержащий нужные файлы";

	BROWSEINFO MyBROWSEINFO = { 0 };
	MyBROWSEINFO.pszDisplayName = buf;
	MyBROWSEINFO.lpszTitle = title;

	
	PIDLIST_ABSOLUTE itls;
	if ((itls = SHBrowseForFolder(&MyBROWSEINFO)) != NULL)
		SHGetPathFromIDList(itls, buf);
...
Рейтинг: 0 / 0
Как открыть диалог выбора каталога?
    #39388564
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
добавлю, что полный путь лежит в массиве buf
...
Рейтинг: 0 / 0
Как открыть диалог выбора каталога?
    #39388571
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLКстати, есть какой-то ресурс С/С++ с примерами ответов на вопросы типа "Как это сделать?"MSDN и Google.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как открыть диалог выбора каталога?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]