Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 91
от 16.04.2005, 07:20

Администратор:Калашников О.А.
В номере:Вопросов: 1, Ответов: 5


Вопрос № 19479: Как с помощью CFileDlg можно создать окно для выбора ПАПКИ, а не файла?...

Вопрос № 19479
Как с помощью CFileDlg можно создать окно для выбора ПАПКИ, а не файла?
Отправлен: 10.04.2005, 17:47
Вопрос задал: SerJ1 (статус: Посетитель)
Всего ответов отправлено: 5

Отвечает: Pushkin
Здравствуйте, SerJ1!
Лучше использовать функцию SelectDirectory.
Ответ отправил: Pushkin (статус: 1-ый класс)
Отправлен: 10.04.2005, 19:14
Оценка за ответ: 5

Отвечает: Bob Johnson
Здравствуйте, SerJ1!
Никак, потому что он не рассчитан на это.
используй SHBrowseForFolder.

* EMan2.0: ---===*** Debug mode ***===---

Ответ отправил: Bob Johnson (статус: Академик)
Отправлен: 11.04.2005, 00:02

Отвечает: gvozdok
Здравствуйте, SerJ1!
Ищи на www.codeproject.com там есть такие классы, сам искал и нашел там. Если не найдешь- пиши.
Ответ отправил: gvozdok (статус: 5-ый класс)
Отправлен: 11.04.2005, 04:31

Отвечает: vitya
Здравствуйте, SerJ1!
Предлагаю не заморачиваться и использовать SHBrowseForFolder. Иначе придется сильно мучаться.
Ответ отправил: vitya (статус: Профессор)
Отправлен: 11.04.2005, 09:55

Отвечает: Raptor1
Здравствуйте, SerJ1!
Так как простой и быстый способ наверняка кто нибудь тебе подскажет SHBrowseForFolder), я расскажу о другом варианте выбора папок,
прочитанном в одной книге по MFC
Итак стандартный диалог выбора файлов старого стиля содержит два окна, одно с папками, другое с файлами. Одним из метов реализации выбора папок является замена стандартного диалога своим собственным Для обеспечения совместимости требуется в свой диалог добавить все элементы с теми же ID что и в стандатртном диалоге. После этого можно скрыть ненужные элементы упарвления и переопределить поведение диалога выбора файлов.
Дляэтого требуется:
1. Подготовить шаблон диалога со всеми элементами
2. Установить флаг OFN_ENABLETEMPLATE бит для члена flags структуры OPENFILENAME и назначить переменной lpTemplateName новый шаблон диалога
3. Назначить hInstance значение с помошью AfxGetInstanceHandle()
Итак, наш шаблон диалога должен содержать следующие элементы:
Элемент ID IDVALUE
Static для показа дирректории stc1 1088
Static содержит строку "List Files of Type" stc2 1089
Static содержит строку "Folder" stc3 1090
Static содержит строку "Drive" stc4 1091
Edit для ввода имени файла edt1 1152
ListBox для отображения файлов lst1 1120
ListBox для отображения папок lst2 1121
Combo содержит типы файлов cmb1 1136
Combo содержит диски cmb2 1137
Static содержит строку "Directories не определен65535
Check "Read only" chx1 1040
Button "OK" IDOK
Button "Calcel" IDCANCEL
Button "Help" pshHelp 1038
Эти элементы можно расположить на форме в произвольном порядке а ненужные скрыть с помощью ShowWindow,
значение в edt1 требуется изменить, так как по умолчанию оно равно "*.*" и при этом диалог не закрывается
В обработчике OnOK необходимо записать
CFileDialog::OnOK();
CFileDialog::OnOK();
один для выбора файла , другой для завершения
В общем, подробности в приложении

Приложение:

Ответ отправил: Raptor1 (статус: 3-ий класс)
Отправлен: 11.04.2005, 23:03
Оценка за ответ: 5


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.cplus
Отписаться

В избранное