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

В этом разделе описывается пример кода, который отображает диалоговое окно Открыть таким образом пользователь может указать диск, каталог и имя файла для открытия. В образце кода сначала инициализирует OPENFILENAME структуры, а затем вызывает функцию GetOpenFileName для отображения диалогового окна.

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

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

Функция GetOpenFileName возвращает значение TRUE, если пользователь нажимает кнопку ОК , и существуют указанный путь и имя файла. В этом случае буфер, который указывает lpstrFile члена содержит путь и имя файла. Пример кода использует эту информацию в вызове к функция CreateFile открыть файл.

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

OPENFILENAME ofn;       / / общее диалоговое окно поле структуры
Чар szFile [260];       / / буфер для имени файла
HWND hwnd;              / / окно-владелец
ОБРАБАТЫВАТЬ кв;              / / файл ручкой

/ / Инициализировать OPENFILENAME
ZeroMemory (amp; 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.Флаги = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

/ / Отображения диалогового окна Открыть. 

Если (GetOpenFileName(&ofn) == TRUE) кв = CreateFile (ofn.lpstrFile, GENERIC_READ,
        0, NULL (LPSECURITY_ATTRIBUTES)
        OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,
        (РУЧКИ) NULL) 

Index