Функция GetOpenFileNameA (commdlg.h)
[Начиная с Windows Vista, общие диалоговые окна "Открыть" и "Сохранить как" заменены диалоговым окном "Общий элемент". Мы рекомендуем использовать API общих диалоговых окон вместо этих диалоговых окон из библиотеки общих диалоговых окон.]
Создает диалоговое окно Открыть , позволяющее пользователю указать диск, каталог и имя файла или набора файлов, которые необходимо открыть.
Синтаксис
BOOL GetOpenFileNameA(
[in, out] LPOPENFILENAMEA unnamedParam1
);
Параметры
[in, out] unnamedParam1
Тип: LPOPENFILENAME
Указатель на структуру OPENFILENAME , содержащую сведения, используемые для инициализации диалогового окна. Когда getOpenFileName возвращает значение , эта структура содержит сведения о выборе файла пользователем.
Возвращаемое значение
Тип: BOOL
Если пользователь указывает имя файла и нажимает кнопку ОК , возвращается ненулевое значение. Буфер, на который указывает элемент lpstrFile структуры OPENFILENAME , содержит полный путь и имя файла, указанные пользователем.
Если пользователь отменяет или закрывает диалоговое окно Открыть или возникает ошибка, возвращаемое значение равно нулю. Чтобы получить расширенные сведения об ошибке, вызовите функцию CommDlgExtendedError , которая может вернуть одно из следующих значений.
Комментарии
Диалоговое окно Открыть в стиле Обозреватель предоставляет функции пользовательского интерфейса, аналогичные Обозреватель Windows. Вы можете указать процедуру перехватчика OFNHookProc для диалогового окна Открыть в стиле Обозреватель. Чтобы включить процедуру перехватчика, задайте флаги OFN_EXPLORER и OFN_ENABLEHOOK в элементе Flags структуры OPENFILENAME и укажите адрес процедуры перехватчика в элементе lpfnHook .
Windows по-прежнему поддерживает диалоговое окно открытия старого стиля для приложений, которые хотят поддерживать пользовательский интерфейс, совместимый со старым пользовательским интерфейсом. Чтобы отобразить диалоговое окно Открыть старого стиля, включите процедуру перехватчика OFNHookProcOldStyle и убедитесь, что флаг OFN_EXPLORER не установлен.
Чтобы отобразить диалоговое окно, позволяющее пользователю выбрать каталог, а не файл, вызовите функцию SHBrowseForFolder .
Обратите внимание, что при выборе нескольких файлов общее ограничение символов для имен файлов зависит от версии функции.
- ANSI: ограничение в 32 КБ
- Юникод: без ограничений
Примеры
Пример см. в разделе Открытие файла.
Примечание
Заголовок commdlg.h определяет GetOpenFileName в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | commdlg.h (включая Windows.h) |
Библиотека | Comdlg32.lib |
DLL | Comdlg32.dll |
Набор API | ext-ms-win-shell-comdlg32-l1-1-1 (появился в Windows 10 версии 10.0.14393) |
См. также раздел
Общая библиотека диалоговых окон
Основные понятия
Другие ресурсы
Справочные материалы