Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вопрос про fileDlg / 6 сообщений из 6, страница 1 из 1
15.04.2005, 16:56
    #33018715
gogo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про fileDlg
Добрый день.

Запускается приложение. Восстанавливается состояние обектов из файла.
В приложении в процессе работы вызывается fileDlg.DoModal(); для выбора
некоторых файлов. После этого Система переустанавливает значение
текущего каталога ( устанавливает его на каталог который был выбран в диалоге fileDlg.DoModal(); ). В результате при выходе из Приложения файл в котором запоминается текущее состояние обьектов Приложения пишется в этот переустановленной каталог, а не в тот откуда он читался.
Как этого избежать.
Какие есть функции есть для работы с "Текущим Каталогом". Типа Get/Set ?
Спасибо.
...
Рейтинг: 0 / 0
15.04.2005, 17:49
    #33018884
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про fileDlg
Аткрывать файл с полным путем. В прилажении в параметрах кажется есть путь, откуда запускалась программа . Приписываешь к нему имя файла - и вперед.
...
Рейтинг: 0 / 0
16.04.2005, 18:16
    #33019618
nikname
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про fileDlg
У меня вопрос в тему.
Как переделать FileDlg в диалог для выбора директории?
...
Рейтинг: 0 / 0
27.04.2005, 09:09
    #33037418
Dubrov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про fileDlg
Толком уже не помню, но примерно так:
1. Создается окно диалога (на основе стандартного, есть в папке INCLUDE VC)
2. Убираются ненужные control-ы (причем не удаляются а делаются скрытыми или/и с нулевыми размерами).
3. На основе класса COpenDialog делается свой, в котором переопределяется OnInitDialog
4. Вместо имени файла задается что угодно (лишь бы не пустота).
5. Диалог создается и ... (дальше не помню, sorry).
А, кстати, нужно использовать диалог выбора файла в стиле Windows 3.1 т.к. в нем есть окно выбора папки, в отличие от окна Win 95.

А еще лучше использовать ф-цю.
Код: plaintext
1.
ITEMIDLIST SHBrowseForFolder(LPBROWSEINFO lpbi);
про которую можно почитать в MSDN.
---
С уважением, Dubrov.
...
Рейтинг: 0 / 0
29.04.2005, 17:00
    #33043369
Ой Вэй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про fileDlg
В структуре OPENFILENAME есть поле Flags, и один из битов называется OFN_NOCHANGEDIR -- не менять текущую директорию при вызове диалога открытия файла.

Для работы с текущей директорией есть функции GetCurrentDirectory(), SetCurrentDirectory().
...
Рейтинг: 0 / 0
06.05.2005, 12:04
    #33052342
Dubrov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про fileDlg
А вообще, если нужно чтобы настройки приложения всегда были в одном месте можно:
1. Использовать реестр;
2. Писать INI-шку в папку Windows (как это было в Win3.x или в Win9x);
3. В классе CWinApp (или в его родителях) есть переменная с именем то ли программы, то ли хелпа от нее, то ли самой папки в которой EXE-шник находится, и из нее можно узнать папку программы и писать файл с настройками в нее.
Но лучше всего использовать реестр. В крайнем случае в нем можно хранить не сами настройки, а имя и путь к последнему использовавшемуся файлу конфигурации.
---
С уважением, Dubrov.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вопрос про fileDlg / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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