Где находится диалоговое окно открытие файла

Обновлено: 07.07.2024

15 декабря 2020 mob25


На этом шаге мы рассмотрим использование диалогового окна Open.


Вероятно, в Windows нет функции, применяемой в приложениях чаще, чем открытие документа. Так как эта функция требуется очень часто, и
разработчики среды Windows хотели, чтобы данная задача обрабатывалась одинаково в различных приложениях, начиная с версии Windows 3.1 было
добавлено стандартное диалоговое окно "Открытие файла" ("Open"). OWL инкапсулирует это диалоговое окно в класс
TFileOpenDialog. TFileOpenDialog является производным классом от класса TOpenSaveDialog, который определяет базовые функции
стандартных диалоговых окон "Открытие файла" ("Open") и "Сохранение файла" ("Save").


Все классы стандартных диалоговых окон библиотеки OWL, в том числе и TOpenSaveDialog, включают встроенный класс с названием
TData. TData представляет собой структуру, которая содержит информацию о том, как должно выглядеть стандартное диалоговое окно и
как оно должно работать. Каждое стандартное диалоговое окно требует класс TData различного типа. Например, класс TData объекта TOpenSaveDialog содержит
такую информацию, как задаваемое по умолчанию имя файла, шаблоны имени файла, заданное по умолчанию расширение файла и первоначально выбранный каталог. С другой стороны, объект класса
TData, относящийся к диалоговому окну TChooseColorDialog, содержит такую информацию, как цвет, задаваемый по умолчанию, и массив цветов,
определяемых пользователем.


За исключением соответствующего классу объекта типа TData, вам не нужен доступ к каким-либо членам-данным либо функциям-членам класса
TOpenSaveDialog. Фактически вам даже не нужно использовать конструктор TOpenSaveDialog. Вместо него вам следует вызвать конструкторы
окон TFileOpenDialog или TFileSaveDialog. Следующий пример показывает, как использовать стандартное диалоговое окно
"Открытие файла" ("Open").

Текст этого приложения можно взять здесь.


При запуске этой программы вы увидите окно, показанное на рис.1.



Рис.1. Результат работы приложения


Это окно имеет единственный пункт меню File, который содержит команды
Open File и Exit. Выберите команду Open File, чтобы отобразить в Windows окно диалога Open, приведенное на рис.2.



Рис.2. Диалоговое окно "Открытие файла"


Обратите внимание на находящуюся в начале текста программы строку:


Вы должны включать заголовочный файл OPENSAVE.H в любую программу, которая использует классы диалоговых окон, производные от TOpenSaveDialog.
Однако, в отличие от класса ТInputDialog, вам не нужно добавлять файл ресурсов к своему проекту для стандартных диалоговых окон. Это вызвано тем, что
стандартные диалоговые окна находятся в COMMDLG.DLL - библиотеке диалоговых окон, включенной в Windows.


Эта функция сначала конструирует объект TData для диалогового окна. Версия объекта TData для класса TOpenSaveDialog имеет конструктор, требующий пять аргументов.
Первым является набор флагов, которые определяют, как диалоговое окно будет выглядеть и работать. Таблица 1 содержит список констант, являющихся значениями этих флагов. Чтобы придать диалоговому окну Open такой вид,
какой вы хотите, вы должны произвести операцию логического сложения (OR) над соответствующими флагами. В приведенном примере флаги указывают, что пользователь не может выбрать (создать) несуществующие файлы и пути,
и кнопка-переключатель "только чтение" ("read-only") не будет показана в этом диалоговом окне.

Таблица 1. Константы флагов TOpenSaveDialog::TData

Имя Описание
OFN_ALLOWMULTISELECT Разрешает множественный выбор файлов.
OFN_CREATEPROMPT Спрашивать, желает ли пользователь создать файл, если он не существует.
OFN_EXTENSIONDIFFERENT Извещает вызывающую программу о том, что выбранный файл имеет расширение, отличное от заданного по умолчанию.
OFN_FILEMUSTEXIST Запрещает производить выбор несуществующего файла.
OFN_HIDEREADONLY Препятствует отображению кнопки-переключателя "read-only" ("только чтение").
OFN_NOVALIDATE Не проверять имя выбранного файла.
OFN_NOCHANGEDIR Переустанавливает каталог в текущий каталог в момент запуска окна диалога.
OFN_NOREADONLYRETURN Извещать вызывающую программу, когда выбранный файл не помечен только для чтения и не защищен от записи.
OFN_NOTESTFILECREATE Устанавливает режим создания файла без предварительного контроля таких ошибок как полный или недоступный диск.
OFN_OVERWRITEPROMPT Запрашивает у пользователя разрешение на перезапись существующего файла.
OFN_SHAREAWARE Возвращает имя выбранного файла, даже если существует конфликт при совместном использовании файлов.
OFN_SHOWHELP Показывает кнопку "Help" диалогового окна.


Большинство этих параметров можно задать после создания объекта TData. В конце этого шага мы приведем структуру объекта TData для класса TOpenSaveDialog.


Понятно, что большинство флагов, приведенных в таблице 1, не используются в диалоговом окне Open, так как выбранный пользователем файл открывается для чтения, а не для записи. Однако, так как класс TOpenSaveDialog является базовым
для классов TFileOpenDialog и TFileSaveDialog диалоговых окон, то объект TDatа должен поддерживать задачи как открытия, так и сохранения файлов.


Второй аргумент в конструкторе TOpenSaveDialog::TData представляет собой список фильтров имен файлов, которые должны будут появиться в окне списка фильтров имен файлов окна диалога. Вы можете включать столько фильтров, сколько вам
необходимо, но каждый фальтр должен быть записан в следующей форме:

где text представляет собой описание фильтра файла, которое появляется в окне списка, a filter - реальный фильтр DOS. В приведенном примере фильтр для выбора любого файла представлен текстом
Все файлы (*.*) и фильтром DOS *.*. Так же определен фильтр для текстовых файлов. Этот фильтр содержит текст
Текстовые файлы (*.txt) и фильтр DOS *.txt. Вы можете перечислить столько таких фильтров, сколько захотите.


Третий аргумент в конструкторе TOpenSaveDialog::TData позволяет вам добавить указатель к буферу для хранения заданных пользователем фильтров. Этот буфер почти всегда устанавливается в нулевое значение (NULL).
Четвертый аргумент - это начальный каталог, в котором будет открываться диалоговое окно. Для текущего каталога установите этот аргумент в 0. Наконец, пятый аргумент - это расширение, которое будет добавляться к любому имени файла,
вводимому пользователем без расширения. Например, если вы ожидаете, что пользователь должен выбрать текстовый файл с расширением ТХТ, вы можете задать ТХТ по умолчанию в TData. Тогда, если пользователь
введет STORY1 в качестве имени файла, эта функция возвратит STORY1.TXT.


После того, как функция создала объект TData, возвратимся к CmFileOpen(). Она конструирует диалоговое окно Open. Для этого программа вызывает конструктор класса TOpenFileDialog, который требует в качестве
аргументов указатель родительского окна создаваемого диалогового окна и ссылку на объект TData диалогового окна. Вызов функции Execute() диалогового окна активизирует окно диалога и разрешает пользователю использовать его
управляющие элементы для выбора файла.


Приведем описание структуры объекта TData для класса TOpenSaveDialog.

  • char* CustomFilter - хранит определенный пользователем фильтр, например *.CPP.
  • char* DefExt - задает расширенние имени файла, которое подставляется в файл, если пользователь указал только имя файла.
  • unit32 Error - содержит код ошибки. Возможные значения:
    • CDERR_DIALODFAILURE - ошибка при создании диалогового окна;
    • CDERR_LOCKRESOURCEFAILURE - ошибка при использовании ресурсов;
    • CDERR_LOADRESFAILURE - ошибка при обращении к ресурсам;
    • CDERR_LOADSTRFAILURE - ошибка при обращении к строке спецификаций.


    На следующем шаге мы рассмотрим использование диалогового окна Save.

    Используйте диалоговое окно Открытие файла, чтобы открыть существующий файл с диска. Это диалоговое окно можно также использовать для повторного открытия уже открытого файла с другими параметрами языковой кодировки.

    Для доступа к этому диалоговому окну выберите пункт Открыть в меню Файл , а затем выберите Файл. Это диалоговое окно отображается также при открытии файлов с помощью других элементов интерфейса, например диалогового окна Внешние средства . В меню Файл выберите команду Открыть и пункт Решение или проект , чтобы открыть похожее диалоговое окно Открытие проекта .

    Прежде чем открыть проект или компонент в среде Среда Management Studio, определите, заслуживает ли его код доверия. Даже само действие по открытию проекта или компонента в среде Среда Management Studio может привести к выполнению его кода в доверенном процессе на локальном компьютере.

    Параметр

    Look in
    Найти существующую папку проектов в выпадающем меню. Если выбрать папку в этом списке, в основной панели отображается содержимое папки.

    Моя панель позиций

    Рабочий стол
    Отображает файлы и папки, находящиеся на рабочем столе.

    Мои проекты
    Отображает файлы и папки, находящиеся в папке Проекты текущего пользователя.

    Мой компьютер
    Отображает содержимое гибкого, жесткого дисков и дисковода для компакт-дисков.

    Список папок

    Имя файла
    Используйте этот параметр для фильтрации отображаемых файлов и папок. Введите полное или частичное имя файла, которое будет использоваться фильтром. В качестве символа-шаблона можно использовать символ звездочки (*).

    Тип файлов
    Используйте этот параметр для фильтрации содержимого папки или каталога, выбранного в списке «Папки», по определенному типу файлов.

    Параметры диалоговых окон «Открыть с помощью» и «Кодировка»
    Чтобы воспользоваться диалоговым окном Открыть с помощью для указания редактора целевого файла, щелкните маленький прямоугольник справа от кнопки Открыть и выберите команду Открыть с помощью. В случае необходимости можно также указать схему языковой кодировки, применяемую при открытии выбранного файла. Для этого выберите одну из программ в списке, который содержит слова «в кодировке», и выберите команду Открыть, чтобы отобразить диалоговое окно Кодировка. Эта кнопка доступна не всегда.

    Панель инструментов

    На один уровень вверх
    Позволяет перейти в дереве к папке, находящейся на ближайшем вышестоящем уровне в древовидном представлении.

    Выполнить поиск на веб-узлах
    Эта кнопка недоступна.

    Удаление
    Удаляет выбранные файлы и папки из хранилища.

    Создать папку
    Отображает диалоговое окно Создать папку . Используйте этот параметр, чтобы создать новую вложенную папку в папке, выбранной в раскрывающемся списке Папка .

    Представления

    Содержит варианты упорядочивания и просмотра содержимого элемента в раскрывающемся списке Представления .

    Эскизы страниц
    Отображает уменьшенные представления элементов, находящихся на панели отображения.

    Плитки
    Отображает файлы и папки в виде крупных значков.

    Значки
    Отображает файлы и папки в виде мелких значков.

    Список
    Отображает файлы и папки в формате списка.

    Сведения
    Отображает для файлов и папок имя, размер, тип и дату последнего изменения в формате списка. Чтобы отсортировать список по конкретной характеристике, щелкните заголовок относящегося к ней столбца.

    WebView
    Эта команда недоступна.

    Инструменты

    Выберите действие, применяемое к элементу, выделенному на панели «Содержимое».

    Удаление
    Удаляет выбранные файлы или папки из хранилища.

    Подключить сетевой диск
    Открывает диалоговое окно Подключить сетевой диск .

    На этом шаге мы рассмотрим диалоговое окно Открытие документа .

    Чтобы открыть рабочую книгу в диалоговом окне Открытие документа (рис. 1), необходимо указать имя файла рабочей книги (в поле Имя файла ) и папку, где он находится (в поле Папка ).


    Рис. 1. Диалоговое окно Открытие документа

    Описываемое диалоговое окно содержит множество различных опций. Если Вам известно, в какой папке находится файл, то самый простой способ — указать папку (поле Папка ), а затем выделить в ней имя нужного файла. Для открытия выбранного файла щелкните на кнопке Открыть или дважды щелкните на имени файла.

    • Открыть . Открывает файл в "обычном режиме".
    • Открыть только для чтения . Открывает файл в режиме "только для чтения". В этом режиме нельзя сохранить изменения, сделанные в открытом файле.
    • Открыть как копию . Открывает копию выбранного файла. Если имя файла Бюджет.xls , то имя открытой книги будет Коп Бюджет.xls .
    • Открыть в обозревателе . Открывает файл в обозревателе Web .

    Примечание . Вы можете выделить несколько файлов рабочих книг, удерживая нажатой клавишу Ctrl . После щелчка на кнопке Открыть все выделенные файлы рабочих книг откроются.

    Щелкнув правой кнопкой мыши на имени файла в диалоговом окне Открытие документа , можно открыть контекстное меню с множеством дополнительных команд. Например, с их помощью можно скопировать файл, удалить его, изменить его свойства и т.д.

    Поле Папка является раскрывающимся списком. Щелчок на кнопке раскрытия списка приводит к раскрытию окна, в котором отображаются системные компоненты компьютера. В этом списке можно выбрать другой диск или каталог.

    Кнопка Переход на один уровень вверх позволяет переместиться на один уровень вверх в иерархии папок. Также можно щелкнуть на одной из больших кнопок, расположенных на панели в левой части диалогового окна Открытие документа . После этого может быть получен доступ к следующим папкам:

    В нижней части диалогового окна Открытие документа находится раскрывающийся список Тип файлов . Когда открывается описываемое диалоговое окно, в списке отображено Все файлы Microsoft Excel . Это означает, что отображаемые в диалоговом окне файлы отфильтрованы по типам. Если Вы хотите открыть файл другого типа, щелкните на кнопке раскрытия списка и выберите нужный тип файла. Таким образом Вы измените способ фильтрации, и в диалоговом окне отобразятся только файлы выбранного типа.

    Файлы в диалоговом окне Открытие документа могут отображаться в одном из четырех режимов. Для изменения режима отображения можно воспользоваться кнопкой Представления (рис. 2).


    Рис. 2. Кнопка Представление

    • Список . Имена файлов отображаются в виде списка в нескольких колонках.
    • Таблица . Имена файлов отображаются в виде списка с информацией о каждом файле (размер файла, его тип и время последнего изменения).
    • Свойства . Имена файлов отображаются в виде списка с выводом свойств выделенного файла в отдельном окне.
    • Просмотр . Имена файлов отображаются в виде списка с демонстрацией содержимого выделенного файла в отдельном окне предварительного просмотра.

    Открыв меню Сервис (рис. 3), расположенное справа в верхней части окна Открытие документа , будет отображено контекстное меню, содержащее следующие команды:


    Рис. 3. Меню Сервис

    • Найти . Открывает новое диалоговое окно, позволяющее провести поиск конкретных файлов.
    • Удалить . Удаляет выбранные файлы.
    • Переименовать . Позволяет переименовать выбранный файл.
    • Печать . Открывает выбранный файл, печатает его содержимое и закрывает его.
    • Добавить в папку "Избранное" . Добавляет в папку Избранное ярлык для выделенного файла.
    • Подключить сетевой диск . Открывается диалоговое окно, позволяющее подключить сетевой диск или каталог к выбранному локальному устройству.
    • Свойства . Открывается диалоговое окно свойств выделенного файла. Это позволяет просмотреть или изменить свойства файла, не открывая сам файл.

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

    00_customized_places_bar

    Как правило, в Windows есть два типа диалоговых окон Open / Save. Один вид выглядит как Windows Explorer, дерево слева содержит «Избранное», «Библиотеки», «Компьютер» и т. Д. Другой тип содержит вертикальную панель инструментов, называемую «Панель меток».

    Диалоговое окно «Открыть / Сохранить» в стиле проводника Windows можно настроить, добавив свои собственные папки в список «Избранное» . Затем вы можете щелкнуть стрелки слева от основных элементов, кроме избранного, чтобы свернуть их, оставив только список стандартных и пользовательских избранных.

    01_windows_standard_save_dialog

    Панель меток расположена в левой части диалогового окна «Открыть / сохранить файл» и содержит кнопки, обеспечивающие доступ к часто используемым папкам. Кнопки по умолчанию на панели мест — это ссылки на «Последние места», «Рабочий стол», «Библиотеки», «Компьютер» и «Сеть». Однако вы изменяете эти ссылки на ссылки на пользовательские папки по вашему выбору.

    02_places_bar_on_save_dialog

    Мы покажем вам, как настроить панель мест с помощью реестра и с помощью бесплатного инструмента, если вам неудобно вносить изменения в реестр.

    Использование реестра

    Чтобы открыть редактор реестра, откройте меню «Пуск» и введите «regedit.exe» в поле поиска. Нажмите на ссылку regedit.exe в результатах или нажмите Enter.

    03_opening_regedit

    Если появится диалоговое окно «Контроль учетных записей», нажмите «Да», чтобы продолжить.

    ПРИМЕЧАНИЕ. Это диалоговое окно может не отображаться в зависимости от настроек контроля учетных записей .

    04_uac_dialog_for_regedit

    Перейдите к следующей клавише:

    HKEY_CURRENT_USER \ Программное обеспечение \ Microsoft \ Windows \ CurrentVersion \ Policies \ comdlg32 \ Placesbar

    Ключи comdlg32 и Placesbar могут не существовать. Если нет, вам нужно их создать. Например, чтобы создать ключ comdlg32, щелкните правой кнопкой мыши ключ Policies и выберите New | Ключ.

    05_creating_new_key

    Новый ключ создан, и текст выделен. Переименуйте новый ключ в «comdlg32».

    06_new_key_text_highlighted

    Добавьте Placesbar в качестве нового ключа под ключом comdlg32.

    07_both_keys_created

    Выберите ключ Placesbar и щелкните правой кнопкой мыши на правой панели. Выберите Новый | String Value из всплывающего меню.

    08_creating_new_value

    Переименуйте новое значение Place0. Вы можете создать до 5 записей: Place0, Place1, Place2, Place3, Place4. Вам не нужно определять все пять мест, но они должны быть определены в числовом порядке.

    Чтобы определить целевую папку для значения PlaceX, дважды щелкните имя значения.

    09_double_clicking_on_place0

    В окне редактирования данных «Значение» в диалоговом окне «Редактировать строку» введите полный путь к местоположению, которое вы хотите добавить на панель меток, и нажмите «ОК».

    10_edit_string_dialog

    Вы также можете определить целевую папку, используя числовое значение для системных папок. Ниже приведена таблица с числовыми значениями для разных системных папок. Чтобы определить целевую папку, используя числовое значение, создайте новое DWORD (32-разрядное) значение так же, как вы создали строковое значение.

    11_creating_a_dword_value

    Дважды щелкните новое значение DWORD.

    12_double_clicking_on_dword_value

    Введите числовое значение в поле ввода «Значение». Используйте значения из таблицы под изображением.

    13_edit_dword_value_dialog

    Следующие значения «DWORD» можно использовать для добавления стандартных папок на панель меток.

    00 — Рабочий стол
    01 — Internet Explorer
    02 — Пуск Меню \ Программы
    03 — Мой компьютер \ Панель управления
    04 — Мой компьютер \ Принтеры
    05 — Мои документы
    06 — Избранное
    07 — Меню Пуск \ Программы \ Автозагрузка
    08 — \ Недавние
    09 — \ SendTo
    0a — \ Корзина
    0b — \ Пуск Меню
    0c — — логическая иконка «Мои документы» на рабочем столе
    0d — Моя музыка
    0e — Мои видео
    10 — \ Рабочий стол
    11 — Мой компьютер
    12 — Моя сеть
    13 — \ NetHood
    14 — ОКНА \ Шрифты
    15 — Шаблоны
    16 — Все пользователи \ Пуск Меню
    17 — Все пользователи \ Программы
    18 — Все пользователи \ Пуск Меню
    19 — Все пользователи \ Рабочий стол
    1a — \ Application Data
    1b — \ PrintHood
    1с — \ Локальные настройки \ Данные приложения
    1d — — Нелокальный запуск
    1e — — Нелокализованный общий запуск
    1f — Избранное
    20 — Временные интернет-файлы
    21 — Печенье
    22 — История
    23 — Все пользователи \ Данные приложения
    24 — каталог WINDOWS
    25 — каталог System32
    26 — Программные файлы
    27 — Мои Фотографии
    28 — ПОЛЬЗОВАТЕЛЬСКИЙ ПРОФИЛЬ
    29 — x86 системный каталог на RISC
    2a — — x86 C: \ Program Files в RISC
    2b — C: \ Program Files \ Common
    2c — — Программные файлы x86 \ Common на RISC
    2d — Все пользователи \ Шаблоны
    2e — Все пользователи \ Документы
    2f — Все пользователи \ Пуск, Меню \ Программы \ Администрирование
    30 — — \ Пуск Меню \ Программы \ Администрирование
    31 — Сеть и удаленный доступ
    35 — Все пользователи \ Моя музыка
    36 — Все пользователи \ Мои рисунки
    37 — Все пользователи \ Мое видео
    38 — Справочник ресурсов
    39 — Каталог локализованных ресурсов
    3a — Ссылки на всех пользователей OEM-приложений
    3b — ПОЛЬЗОВАТЕЛЬСКИЙ ПРОФИЛЬ \ Локальные настройки \ Данные приложения \ Microsoft \ Запись CD

    Выберите «Выход» в меню «Файл», чтобы закрыть редактор реестра.

    15_closing_registry_editor

    Панель мест в диалоговом окне Сохранить отображает пользовательские папки и выбранные системные папки.

    16_customized_places_bar

    Использование PlacesBar Editor

    Для тех из вас, кому неудобно вносить изменения в реестр или кто хочет просто упростить настройку панели мест, есть бесплатный инструмент под названием PlacesBar Editor. Загрузите инструмент, используя ссылку в конце этой статьи, и следуйте инструкциям по его установке. Если во время установки отображается диалоговое окно «Контроль учетных записей», нажмите «Да», чтобы продолжить.

    ПРИМЕЧАНИЕ. Вы можете не видеть диалоговое окно «Контроль учетных записей» в зависимости от настроек контроля учетных записей .

    Используйте ярлык, созданный на рабочем столе, для запуска PlacesBar Editor. Вы можете снова увидеть диалоговое окно Контроль учетных записей.

    17_uac_dialog_for_running_places_bar_editor

    При первом запуске редактора PlacesBar отображается следующее диалоговое окно, в котором предлагается сделать пожертвование. Ваш веб-браузер по умолчанию также открывается на страницу PayPal, предлагая пожертвование.

    18_please_consider_donating_dialog

    19_places_bar_editor_windows_tab

    Как уже упоминалось в начале этой статьи, некоторые программы используют диалоговое окно «Открытие и сохранение файлов», аналогичное проводнику Windows. Программы Microsoft Office (и некоторые другие программы Microsoft, такие как Notepad и Paint) используют этот стиль диалогового окна.

    Вы также можете использовать PlacesBar Editor для настройки диалоговых окон Microsoft Office. Нажмите вкладку Office. Для каждой пользовательской папки, которую вы хотите добавить, введите имя для папки в поле редактирования в поле «Имя папки». Используйте кнопку папки, чтобы выбрать нужную папку, или введите полный путь к нужной папке в поле редактирования в разделе «Папки пользователя». Вы можете добавить до пяти дополнительных пользовательских папок. Эти папки добавляются в избранное, а также отображаются как избранное в проводнике Windows.

    20_adding_folders_to_office_open_save_dialog

    Чтобы применить изменения для каждой вкладки, вы должны нажать Сохранить, когда эта вкладка активна. Чтобы применить изменения для программ Office, убедитесь, что вкладка Office активна, и нажмите «Сохранить». Чтобы сохранить изменения, сделанные на вкладке Windows, необходимо щелкнуть вкладку Windows и снова нажать кнопку «Сохранить».

    21_clicking_save

    Появится диалоговое окно, сообщающее, что изменения были сделаны успешно.

    22_changes_made_successfully

    После того, как вы применили или сохранили свои изменения на вкладке, вы можете протестировать эти изменения, нажав кнопку Тест.

    23_testing_settings

    24_custom_folder_added_to_favorites

    Вы можете вернуться к настройкам по умолчанию для обоих типов диалоговых окон Открыть файл и Сохранить файл, нажав кнопку По умолчанию. Вы должны нажать кнопку «По умолчанию» для каждой вкладки отдельно.

    25_return_to_default_settings

    Откроется диалоговое окно подтверждения. Нажмите Да, если вы уверены, что хотите вернуться к настройкам по умолчанию.

    26_are_you_sure_return_to_defaults

    Чтобы закрыть PlacesBar Editor, нажмите Exit.

    27_closing_placesbar_editor

    Настройка диалоговых окон «Открыть файл» и «Сохранить файл» с помощью пользовательских папок может повысить производительность, особенно если используемые вами папки чаще всего находятся в нескольких слоях в структуре папок.

    Читайте также: