Диалоговые окна
Открыть (Open) и Сохранить как (Save As)Диалоговое окно
Открыть (Open) позволяет пользователю, определить диск, каталог и имя файла или набора файлов, которые надо открыть. Вы создаете и показываете на экране диалоговое окно Открыть (Open), инициализируя структуру OPENFILENAME и передавая её в функцию GetOpenFileName.Диалоговое окно
Сохранить как (Save As) позволяет пользователю, определить диск, каталог и имя файла, которые надо сохранить. Вы создаете и показываете на экране диалоговое окно Сохранить как (Save As), инициализируя структуру OPENFILENAME и передавая её в функцию GetSaveFileName.Диалоговые окна Открыть (Open) и Сохранить как (Save As) в стиле Проводника предусматривают функции пользовательского интерфейса, которые являются подобными Microsoft ® Проводнику Windows ®. Однако, система продолжает поддерживать диалоговые окна Открыть (Open) и Сохранить как (Save As) старого стиля для приложений, которые должны быть совместимы с интерфейсом старого стиля у пользователя.
В дополнение к различиям во внешнем виде, диалоговые окна старого стиля и в стиле Проводника отличаются в своем использовании пользовательских шаблонов и фильтр (hook) - процедур для настройки диалоговых окон. Однако, блоки диалога в стиле Проводника и в старом стиле в наиболее базисных действиях, таких как установка фильтра имени файла, проверка правильности ввода пользователем и получение имени файла, определяемого пользователем, имеют одинаковое поведение. Для получения дополнительной информации о диалоговых окнах в стиле Проводника и старого стиля, см.
Настройка диалоговых окон Открыть и Сохраните Как.Иллюстрация ниже показывает типичное диалоговое окно
Открыть (Open) в стиле Проводника.Иллюстрация ниже показывает типичное диалоговое окно
Сохранить как (Save As) в стиле Проводника.Если пользователь определяет имя файла и щелкает мышью по кнопке OK, функция
GetOpenFileName или GetSaveFileName возвращает значение ИСТИНА (TRUE). Буфер, указанный членом lpstrFile структуры OPENFILENAME содержит полный путь и имя, заданное пользователем, файла.Если пользователь отменяет работу диалогового окна
Открыть (Open) или Сохранить как (Save As), или происходит ошибка, функция возвращает значение ЛОЖЬ (FALSE). Чтобы определить причину ошибки, вызовите функцию CommDlgExtendedError, которая дает расширенное значение ошибки. Если буфер lpstrFile слишком маленький, чтобы принять полное имя файла, CommDlgExtendedError возвращает FNERR_BUFFERTOOSMALL и первые 2 байта буфера, указанного членом lpstrFile, приведенные к целочисленному значению, устанавливающему размер, требуемый, чтобы принять полное имя файла.Диалоговые окна в стиле Проводника доступны только 32-разрядным прикладным программам. 16-разрядные прикладные программы не могут использовать
переключение (thunking) (с 16 на 32-разрядный режим) , чтобы показать диалоговое окно в стиле Проводника.Windows 95/98/Me: Базирующиеся на Win32 прикладные программы, которые используют диалоговые окна старого стиля, делают это, используя «переходник» (thunk). Это означает, что любой указатель, переданный вашей фильтр (hook) - процедуре - не сохраняющаяся копия данных. Например, указатель OPENFILENAME, переданный в сообщении WM_INITDIALOG - не указывает на буфер, который вы первоначально определили. Если вы должны передать частные данные вашей фильтр (hook) - процедуре, сгруппируйте их в структуре и сохраните указатель на ее в члене lCustData структуры OPENFILENAME.
Ниже в этом разделе обсуждаются следующие темы.