EugeneRoshal
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Inoz2000 Цитата: Там все несколько сложнее. Открытие архива работает, как и положено, через GetOpenFileName, потому что открывать оно может только существующие файлы. "Browse" же в диалоге архивирования позволяет указать имя несуществующего нового архива и вызывает GetSaveFileName. GetOpenFileName ведет себя с несуществующими файлами несколько неудобно. Если у нас поле file name уже заполнено, и мы нажимаем Desktop, а потом Open, не редактируя file name, а используя значение, переданное из диалога архивирования, то вместо того, чтобы вернуть desktop\arcname, этот диалог открывает обзор Computer. Дело в том, что при нажатии Desktop этот Computer почему то выделен по умолчанию. Выглядит это не совсем ожидаемо. GetSaveFileName работает в этой ситуации нормально. Но GetSaveFileName вместо "OK" выводит кнопку "Save", что выглядит странным при указании имени нового архива. Поэтому я установил OFN_ENABLEHOOK и использую hook, чтобы изменить имя кнопки на "OK". Но при наличии hook Windows автоматически переключается на старый формат диалога. Может быть это можно решить с помощью IFileDialog, а может и нельзя, пока не разбирался. Кроме того, этот интерфейс поддерживается только с Висты. Как вариант, может в 5.10 я просто не буду менять кнопку "Save" на "OK". Пусть будет Save. |