Функция GetOpenFileName создает диалоговое окно Открыть (Open), которое позволяет пользователю определить открываемый диск, каталог и имя файла или имена ряда файлов.
Синтаксис
BOOL GetOpenFileName( LPOPENFILENAME lpofn ); |
Параметры
lpofn
[in, out] Указатель на структуру OPENFILENAME, которая содержит информацию, используемую для инициализации диалогового окна. Когда GetOpenFileName возвращает значение, эта структура содержит информацию о файле, выбранном пользователем.Возвращаемое значение
Если пользователь задает имя файла и щелкает по кнопке ОК, возвращаемое значение не нуль. Буфер, указанный членом lpstrFile структуры OPENFILENAME содержит полный путь и имя файла, которые определил пользователь.
Если пользователь прервал работу или закрыл диалоговое окно Открыть (Open) или произошла ошибка, возвращаемое значение - ноль. Чтобы получить дополнительную информацию об ошибке, вызовите функцию CommDlgExtendedError, которая может возвратить одно из ниже перечисленных значений:
CDERR_DIALOGFAILURE CDERR_FINDRESFAILURE CDERR_NOHINSTANCE CDERR_INITIALIZATION CDERR_NOHOOK CDERR_LOCKRESFAILURE CDERR_NOTEMPLATE CDERR_LOADRESFAILURE CDERR_STRUCTSIZE CDERR_LOADSTRFAILURE FNERR_BUFFERTOOSMALL CDERR_MEMALLOCFAILURE FNERR_INVALIDFILENAME CDERR_MEMLOCKFAILURE FNERR_SUBCLASSFAILURE
Замечания
Диалоговое окно Открыть (Open), которое обеспечивает пользовательским интерфейсом со свойствами похожими на Проводник (Microsoft® Windows® Explorer). Вы можете предусмотреть для диалогового окна Открыть (Open) в стиле Проводника фильтр - процедуру OFNHookProc. Чтобы разрешить работу фильтр - процедуре, установите флажки OFN_EXPLORER и OFN_ENABLEHOOK в члене Flags структуры OPENFILENAME и определите ее адрес в члене lpfnHook.
Windows продолжает поддерживать диалоговое окно Открыть старого стиля для приложений, которые хотят поддерживать пользовательский интерфейс совместимый с пользовательским интерфейсом в старом стиле. Чтобы показать на экране диалоговое окно Открыть (Open) старого стиля, подключите фильтр - процедуру OFNHookProcOldStyle и убедитесь в том, что флажок OFN_EXPLORER не установлен.
Чтобы показать на экране диалоговое окно, которые дает возможность пользователю выбрать каталог вместо файла, вызовите функцию SHBrowseForFolder.
Обратите внимание! на то, что, при выборе нескольких файлов, общее ограничение числа символов имен файлов зависит от операционной системы и версии функции:
|
Windows NT 4.0: структура OPENFILENAME включает дополнительные члены в более ранних версий Windows. Однако, это порождает проблемы для приложений на базе предыдущих версий Windows. Чтобы использовать текущие заголовочные файлы для приложений, которые должны выполняться в среде Windows NT 4.0, для члена lStructSize структуры OPENFILENAME или используйте #define "/D_WIN32_WINNT=0x0400", или используйте OPENFILENAME_SIZE_VERSION_400.
Windows 95/98/Me: GetOpenFileNameW поддерживается программой Microsoft Layer for Unicode (MSLU). Чтобы использовать ее, Вы должны добавить некоторые файлы к вашему приложению, как изложено в описании Microsoft Layer for Unicode для системы Windows 95/98/Me.
Пример
Пример смотри в статье Открытие файла.
Смотри также
Обзор Библиотека стандартных диалоговых окон, Функции, используемые библиотекой стандартных диалоговых окон, CommDlgExtendedError, GetSaveFileName, OFNHookProc, OFNHookProcOldStyle, OPENFILENAME, SHBrowseForFolder
Размещение и совместимость GetOpenFileName |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.1 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
Comdlg32.lib |
Заголовочный файл |
|
- объявлено в |
Commdlg.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |