Функция 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 |
Нет |
|
Замечания по платформе |
Не имеется |