У цьому розділі описано приклад коду, що відображення в діалоговому вікні Відкрити , що може вказати користувач, диск, папку та ім'я файлу для відкриття. Приклади коду першу ініціалізує структуру OPENFILENAME а потім викликає функцію GetOpenFileName , щоб відобразити діалогове вікно.
У цьому прикладі член lpstrFilter точок в буфер, який визначає два фільтри ім'я файлу, які можна вибрати для обмеження імен, які відображаються. Буфер містить подвійний null припинено масиву рядків, в яких кожну пару рядків вказує фільтр. Член nFilterIndex визначає, що перша модель використовується діалогове вікно створюється.
У цьому прикладі вибирає OFN_PATHMUSTEXIST і OFN_FILEMUSTEXIST прапори прапори члена. Ці прапори викликати діалогове вікно для перевірки, перш ніж повернутися, що шлях та ім'я файлу, вказані користувачем насправді існує.
Функція GetOpenFileName повертає TRUE, якщо натиснути кнопку " OK ", і існує вказаний шлях та ім'я файлу. У цьому випадку, буфер, вказав на lpstrFile член містить шлях та ім'я файлу. Приклади коду використовує цю інформацію в call для на CreateFile функції для відкриття файлу.
Хоча цей приклад не встановлено позначку OFN_EXPLORER, все ще відображається за промовчанням Explorer стиль діалогового вікна відкритими . Однак, якщо ви хочете, щоб забезпечити гачок процедури або настроюваний шаблон, і ви хочете Explorer інтерфейс користувача, ви повинні встановити прапор OFN_EXPLORER.
OPENFILENAME ofn; / / Загальні діалоговому вікні структури
CHAR 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)