C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 4.35.3 - Открытие файла / Cтандартные диалоговые окна / Win32 API

4.35.3 - Открытие файла

Эта статья описывает типовой код, показывающий диалоговое окно Открыть (Open), в котором пользователь мог бы определить диск, каталог и имя открываемого файла. Типовой код сначала инициализирует структуру OPENFILENAME, а затем вызывает функцию GetOpenFileName, чтобы показать диалоговое окно.

В этом примере элемент lpstrFilter указывает на буфер, который устанавливает два фильтра имен файлов, чтобы пользователь мог выбрать ограничения в отображении имен файлов. Буфер содержит массив строк, оканчивающийся двойным нулем, в котором каждая пара строк определяет фильтр. Элемент nFilterIndex устанавливает, какой использовать шаблон первым, когда создается диалоговое окно.

Этот пример устанавливает флажки OFN_PATHMUSTEXIST и OFN_FILEMUSTEXIST в элементе Flags. Эти флажки принуждают диалоговое окно проверять, перед возвратом, какой путь и имя файла, установленные пользователем, фактически существуют.

Функция GetOpenFileName возвращает значение ИСТИНА (TRUE), если пользователь щелкает мышью по кнопке ОК и устанавливает путь и имя существующего файла. В этом случае, буфер указывает на элемент lpstrFile, который содержит путь и имя файла. Типовой код использует эту информацию при вызове функции CreateFile для открытия файла.

Хотя этот пример не устанавливает флажок OFN_EXPLORER, он по умолчанию показывает диалоговое окно Открыть (Open) в стиле Проводника. Однако, если вы хотите установить фильтр - процедуру или пользовательский шаблон и хотите иметь пользовательский интерфейс в стиле Проводника, вы должны установить флажок OFN_EXPLORER.

OPENFILENAME ofn;			// структура стандартного диалогового окна
char szFile[260];			// буфер для имени файла
HWND hwnd;              		// окно владельца
HANDLE hf;              		// дескриптор файла

// Инициализация OPENFILENAME
ZeroMemory(&ofn, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hwnd;
ofn.lpstrFile = szFile;
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = "All\0*.*\0Text\0*.TXT\0";
ofn.nFilterIndex = 1;
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

// Покажем диалоговое окно Открыть (Open).

if (GetOpenFileName(&ofn)==TRUE)
	hf = CreateFile(ofn.lpstrFile, GENERIC_READ,
		0, (LPSECURITY_ATTRIBUTES) NULL,
		OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,
		(HANDLE) NULL);

| |
Автор Владимир Соковиков.
[AD]