Otvorenie súboru

Táto téma popisuje vzorového kódu, ktorý zobrazuje dialógové okno Otvoriť tak môže používateľ zadať jednotky, adresára a názov súboru otvorte. Vzorového kódu najprv inicializuje OPENFILENAME štruktúra a potom zavolá funkciu GetOpenFileName na zobrazenie dialógového okna.

V tomto príklade lpstrFilter člen poukazuje na medzipamäť, ktorá určuje dve filename filtre, ktoré si používateľ môže vybrať obmedzujú názvy, ktoré sú zobrazené. Tlmivý roztok obsahuje hodnotu null dvojité ukončené Pole reťazcov, v ktorom Každá dvojica reťazce špecifikuje filter. Členské nFilterIndex určuje, že prvá vzorka sa použije pri vytváraní dialógového okna.

V tomto príklade nastaví príznaky OFN_PATHMUSTEXIST a OFN_FILEMUSTEXIST v členských štátoch vlajok . Tieto príznaky spôsobiť dialógovom okne overenie pred návratom, cestu a názov súboru stanovenú používateľom skutočne existujú.

Funkcia GetOpenFileName vráti hodnotu TRUE ak používateľ klikne na tlačidlo OK a existujú zadaná cesta a názov súboru. V tomto prípade medzipamäť poukázal člen lpstrFile obsahuje cestu a názov súboru. Vzorového kódu používa tieto informácie pri volaní s funkciou CreateFile na otvorenie súboru.

Hoci tento príklad nie nastaviť príznak OFN_EXPLORER, stále zobrazuje predvolené Explorer-štýl otvorené dialógové okno. Avšak, ak chcete poskytnúť príslušná procedúra alebo vlastnú šablónu a chcete Explorer používateľské rozhranie, musíte nastaviť príznak OFN_EXPLORER.

OPENFILENAME ofn;       / / spoločné dialógové okno štruktúra
znak-szFile [260];       / / Tlmivý názov_súboru
HWND hwnd;              / / vlastník okno
Popisovač hf;              / / súbor popisovača

/ / Inicializovať 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.Vlajkami = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

/ / Zobraziť dialógové okno Otvoriť. 

Ak (GetOpenFileName(&ofn) == TRUE) VF = CreateFile (ofn.lpstrFile, GENERIC_READ,
        0, NULL (LPSECURITY_ATTRIBUTES),
        OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,
        (DESKRIPTOR) HODNOTU NULL) 

Index