Структура OPENFILENAME содержит сведения, функции GetSaveFileName и GetOpenFileName использовать для инициализации открытым или сохранитькак общее диалоговое окно. После того, как пользователь закрывает диалогового окна, система возвращает сведения о выборе пользователя в этой структуре .
typedef struct tagOFN {/ / ofn типа DWORD lStructSize;
HWND hwndOwner;
HINSTANCE hInstance;
LPCTSTR lpstrFilter;
LPTSTR lpstrCustomFilter;
DWORD nMaxCustFilter;
DWORD nFilterIndex;
LPTSTR lpstrFile;
DWORD nMaxFile;
LPTSTR lpstrFileTitle;
DWORD nMaxFileTitle;
LPCTSTR lpstrInitialDir;
LPCTSTR lpstrTitle;
DWORD Флаги;
СЛОВО nFileOffset;
СЛОВО nFileExtension;
LPCTSTR lpstrDefExt;
DWORD lCustData;
LPOFNHOOKPROC lpfnHook;
LPCTSTR lpTemplateName;
} OPENFILENAME
Если установлен флаг OFN_EXPLORER, система использует указанный шаблон для создания диалогового окна, которое является потомком диалогового окна проводника стиль по умолчанию. Если флаг OFN_EXPLORER не задано, система использует шаблон для создания старого стиля диалоговым окном, которое заменяет диалоговое окно по умолчанию.
Первая строка каждой пары это отображаемая строка, которая описывает фильтр (например, "текстовые файлы"), а вторая строка указывает шаблон фильтра (например, «*.TXT"). Чтобы указать несколько шаблонов фильтров для одного дисплея строки, используйте точку с запятой для разделения шаблонов (например, «*.TXT; *.DOC; *.БАК"). Строка шаблона может быть комбинацией символов допустимые имя файла и подстановочный символ звездочка. Не ставьте пробелы в строке шаблона.
Система не изменяет порядок фильтров. Он отображает их в поле со спискомтипы файловв порядке, указанном в lpstrFilter .
Если lpstrFilter имеет значение NULL, диалоговое окно "" не отображаются фильтры.
Если этот элемент имеет значение NULL, диалоговое окно "" не сохраняются шаблоны пользовательских фильтров.
Если этот элемент не является NULL, значение члена nMaxCustFilter необходимо указать размер в байтах (ANSI-версия) или 16-разрядных символов (Unicode версия), lpstrCustomFilter буфера.
Если nFilterIndex равен нулю, и lpstrCustomFilter равно NULL, система использует первый фильтр в буфере lpstrFilter . Если все три члена являются 0 или NULL, система не использует какие-либо фильтры и не содержит каких-либо файлов в списке файлов диалогового окна.
Если установлен флаг OFN_ALLOWMULTISELECT, и пользователь выбирает несколько файлов, буфер содержит текущий каталог, после чего имена файлов выбранных файлов. Для диалоговых окон проводника стиль каталог и имя файла строки являются NULL, разделены, с лишний символ NULL после последнего имени файла. Для диалоговых окон старого стиля строки являются пространства разделены и функция использует короткие имена файлов для имена файлов с пробелами. Вы можете использовать FindFirstFile функции для преобразования между длинные и короткие имена файлов.
Если буфер слишком мал, функция возвращает FALSE, а функция CommDlgExtendedError возвращает FNERR_BUFFERTOOSMALL. В этом случае первые два байта lpstrFile буфера содержит требуемый размер в байтах или символов.
Windows NT 5.0 и более поздних версиях; Windows 98 и более поздних версий:
Если lpstrInitalDir имеет значение NULL, и текущий каталог содержит все файлы указанного фильтра типов, начальный каталог является текущим каталогом.
Если lpstrInitalDir имеет значение NULL, и текущий каталог не содержит какие-либо файлы из указанного фильтра типов, — начальный каталог это личные файлы текущего пользователя. Чтобы задать каталог личных файлов текущего пользователя как начальный каталог, задайте lpstrInitialDir на пути, возвращаемая путем вызова SHGetSpecialFolderLocation функция с флагом CSIDL_PERSONAL.
Более ранних версий Windows и Windows NT:
Если lpstrInitalDir имеет значение NULL, начальный каталог является текущим каталогом.
Флаг | Значение |
---|---|
OFN_ALLOWMULTISELECT | |
Указывает, что полеимя файласо списком позволяет выбрать несколько элементов. Если установлен флаг OFN_EXPLORER, диалоговое окно "" использует исследователь стиль пользовательского интерфейса; в противном случае он использует старый стиль пользовательского интерфейса . Если пользователь выбирает более чем один файл, lpstrFile буфер возвращает путь к текущему каталогу следуют имена файлов выбранных файлов. Член nFileOffset это смещение в байтах или символов, для первого имени файла, и nFileExtension элемент не используется. Для диалоговых окон проводника стиль каталог и имя файла строки являются NULL, разделены, с лишний символ NULL после последнего имени файла. Этот формат позволяет стиле проводника диалоги для возвращения длинные имена файлов, содержащие пробелы. Для диалоговых окон старого стиля каталог и имя файла строки разделяются пробелами и функция использует короткие имена файлов для имена файлов с пробелами. Вы можете использовать FindFirstFile функции для преобразования между длинные и короткие имена файлов. Если указать пользовательский шаблон для диалогового окна метода старого стиля, определение списка имя файла должно содержать значение LBS_EXTENDEDSEL. |
|
OFN_CREATEPROMPT | |
Если пользователь указывает файл, который не существует, этот флаг вызывает диалоговое окно запрашивать у пользователя разрешение на создание файла. Если пользователь выбирает для создания файла, диалоговое окно закрывается, и функция возвращает указанное имя; в противном случае диалоговое окно остается открытым. Если вы используете этот флаг с флагом OFN_ALLOWMULTISELECT, диалоговое окно "" позволяет пользователю указывать только один несуществующего файла. | |
OFN_ENABLEHOOK | |
Включает указанный в lpfnHook член функция. | |
OFN_ENABLESIZING | |
Windows NT 5.0, Windows 98:Позволяет диалоговое окно проводника стиль размеры с помощью мыши или клавиатуры. По умолчанию стиле проводника Открыть и сохранить как диалоговые окна позволяют диалоговое изменен независимо от ли этот флаг установлен. Этот флаг необходим только если вы процедуру подключения или пользовательский шаблон. Диалоговое окно "старых" не разрешает изменение размера. | |
OFN_ENABLETEMPLATE | |
Указывает, что член lpTemplateName указывает на имя ресурса шаблона диалогового окна в модуле, выявленные hInstance член. Если установлен флаг OFN_EXPLORER, система использует указанный шаблон для создания диалогового окна, которое является потомком диалогового окна проводника стиль по умолчанию. Если флаг OFN_EXPLORER не задано, система использует шаблон для создания старого стиля диалоговым окном, которое заменяет диалоговое окно по умолчанию. |
|
OFN_ENABLETEMPLATEHANDLE | |
Указывает, что член hInstance определяет блок данных, содержащего шаблон box предустановленной диалогового окна. Система игнорирует lpTemplateName если этот флаг указан. Если установлен флаг OFN_EXPLORER, система использует указанный шаблон для создания диалогового окна, которое является потомком диалогового окна проводника стиль по умолчанию. Если флаг OFN_EXPLORER не задано, система использует шаблон для создания старого стиля диалоговым окном, которое заменяет диалоговое окно по умолчанию. |
|
OFN_EXPLORER | |
Указывает, что любые изменения, внесенные в диалоговое окно Открыть или сохранить как используют новые методы настройки Explorer стиле. Для получения дополнительной информации см. Исследователь-стиль крюк процедуры и Исследователь-стиль пользовательские шаблоны. По умолчанию диалоговых окнах Открыть и сохранить как используют исследователь стиль пользовательского интерфейса независимо от ли этот флаг установлен. Этот флаг необходим только если вы процедуру подключения или пользовательский шаблон, или установите флаг OFN_ALLOWMULTISELECT. Если вы хотите старого стиля Пользовательский интерфейс, пропустите OFN_EXPLORER флаг и предоставляют замена старого стиля или крючком процедуру. Если вы хотите старый стиль, но не требуется пользовательский шаблон или крючком процедуры, просто обеспечить процедуру подключения, которое всегда возвращает FALSE. |
|
OFN_EXTENSIONDIFFERENT | |
Указывает, что пользователь набрал расширение имени файла, которое отличается от расширения, указанного в lpstrDefExt. Функция не использовать этот флаг, если lpstrDefExt имеет значение NULL. | |
OFN_FILEMUSTEXIST | |
Указывает, что пользователь может ввести только имена существующих файлов в поле вводаимя файла. Если этот флаг указан, а пользователь вводит недопустимое имя, процедуру диалогового окна отображает предупреждение в окне сообщения. Если этот флаг указан, также используется флаг OFN_PATHMUSTEXIST . | |
OFN_HIDEREADONLY | |
Скрываеттолько флажок чтение . | |
OFN_LONGNAMES | |
Для диалоговых окон старого стиля этот флаг вызывает диалоговое окно "" использовать длинные имена файлов. Если этот флаг не указан, или если также установлен флаг OFN_ALLOWMULTISELECT, диалоговых окон старого образца использовать короткие имена файлов (формат 8.3) для имена файлов с пробелами. Диалоговые окна проводника стиль игнорировать этот флаг и всегда показывать длинные имена файлов. |
|
OFN_NOCHANGEDIR | |
Восстанавливает текущий каталог исходное значение, если пользователь изменяет папку при поиске файлов. | |
OFN_NODEREFERENCELINKS | |
Руководит диалоговое окно возвращает путь и имя выбранного ярлыка (.Файл LNK). Если это значение не задано, диалоговое окно возвращает путь и имя файла , на который указывает ссылка ярлыка | |
OFN_NOLONGNAMES | |
Для диалоговых окон старого стиля этот флаг вызывает диалоговое окно "" использовать короткие имена файлов (формат 8.3). Диалоговые окна проводника стиль игнорировать этот флаг и всегда показывать длинные имена файлов. |
|
OFN_NONETWORKBUTTON | |
Скрывает и отключает кнопку " сеть ". | |
OFN_NOREADONLYRETURN | |
Указывает, что возвращенные файл не имеет чтение только флажок проверки и не находится в каталоге, защищен от записи. | |
OFN_NOTESTFILECREATE | |
Указывает, что этот файл не создается до закрытия диалогового окна. Этот флаг должен быть указан, если приложение сохраняет файл на общем сетевом ресурсе create-nonmodify. Когда приложение определяет этот флаг, библиотека не проверяет наличие защиты от записи, полного диска, открытой дверцу или защиты сети. Приложения, использующие этот флаг необходимо выполнить операции с файлами тщательно, потому что файл не может быть возобновлено после его закрытия. | |
OFN_NOVALIDATE | |
Указывает, что общие диалоговые позволяют недопустимые знаки в имени возвращаемого файла. Как правило вызывающее приложение использует процедуру подключения, которая проверяет имя файла с помощью сообщения FILEOKSTRING. Если текстовое поле в элемент управления является пустым или содержит только пробелы, обновляются списки файлов и каталогов. Если текстовое поле в поле редактирования содержит что-нибудь еще, nFileOffset и nFileExtension устанавливаются значения, полученные путем синтаксического анализа текста. Не расширение по умолчанию добавляется к тексту, а также текст копируется в буфер, предусмотренных lpstrFileTitle. | |
Если значение, заданное nFileOffset меньше нуля, недопустимое имя файла. В противном случае имя файла является действительным, и nFileExtension и nFileOffset могут быть использованы как, если не был указан флаг OFN_NOVALIDATE. | |
OFN_OVERWRITEPROMPT | |
Вызывает диалоговое окно сохранить как "" для создания окна сообщения, если выбранный файл уже существует. Пользователь должен подтвердить перезапись файла. | |
OFN_PATHMUSTEXIST | |
Указывает, что пользователь может ввести только допустимые пути и имена файлов. Если пользователь вводит неверный путь и имя файла в поле вводаимя файла, и этот флаг используется, функция выводит предупреждение в окне сообщения . | |
OFN_READONLY | |
Вызываеттолько флажок чтениедля проверки изначально при создании диалоговым окном. Этот флаг указывает состояниетолько флажок чтениепри закрытии диалогового окна . | |
OFN_SHAREAWARE | |
Указывает, что если вызов OpenFile функция не работает из сети обмена нарушение, ошибка игнорируется и диалоговое окно возвращает имя выбранного файла. Если этот флаг не установлен, диалоговое окно уведомляет процедуру подключения, когда сеть обмена нарушение происходит для имени файла, указанного пользователем. Если установлен флаг OFN_EXPLORER, диалоговое окно "" отправляет сообщение CDN_SHAREVIOLATION процедуру подключения. Если OFN_EXPLORER не установлен, диалоговое окно "" отправляет сообщение зарегистрированных SHAREVISTRING процедуру подключения. |
|
OFN_SHOWHELP | |
Вызывает диалоговое окно для отображения кнопки Справка . Член hwndOwner необходимо указать окно, чтобы получить HELPMSGSTRING зарегистрированы сообщения отправляемые диалогового окна, когда пользователь нажимает кнопку Справка. Диалоговое окно проводника стиль посылает сообщение уведомления CDN_HELP процедуру подключения, когда пользователь нажимает кнопку Справка. |
Если пользователь выбирает более чем один файл, nFileOffset — смещение первого имени файла.
Если флаг OFN_EXPLORER не установлен в странах-членах флагов , lpfnHook является указателем на процедуру подключения OFNHookProcOldStyle , получает сообщения для диалогового окна. Крюк процедура возвращает значение FALSE, чтобы передать сообщение на процедуру диалогового окна по умолчанию или значение TRUE, чтобы отменить сообщение.
Если имеет значение OFN_EXPLORER, lpfnHook — указатель на процедуру подключения OFNHookProc . Процедуру подключения получает сообщения уведомления, отправляемые из диалогового окна. Процедуру подключения также получает сообщения для любых дополнительных элементов управления, определенных путем указания шаблона диалогового окна ребенок. Процедуру подключения не получает сообщения, предназначенные для стандартных элементов управления диалогового окна по умолчанию.
Если установлен флаг OFN_EXPLORER, система использует указанный шаблон для создания диалогового окна, которое является потомком диалогового окна проводника стиль по умолчанию. Если флаг OFN_EXPLORER не задано, система использует шаблон для создания старого стиля диалоговым окном, которое заменяет диалоговое окно по умолчанию.
nbsp; Windows &NT: требует версии 3.1 или более поздней версии.
Windows:Требует Windows 95 или более поздней версии.
Windows CE:Требует версии 1.0 или более поздней версии.
Заголовок:Объявленные в commdlg.h.
Юникод:Определяется как структуры Unicode и ANSI.
Общие диалогового окна Обзор библиотеки, Общие диалоговое окно окно структуры, GetOpenFileName, GetSaveFileName, SHGetSpecialFolderLocation