Deschiderea unui fișier

Acest subiect descrie mostre de cod, care afișează o casetă de dialog deschisă , astfel încât utilizatorul poate specifica unitatea, director și numele unui fișier pentru a deschide. Mostre de cod prima inițializează o structura OPENFILENAME , ?i apoi apelează funcția GetOpenFileName pentru a afișa caseta de dialog.

În acest exemplu, membru lpstrFilter puncte de la un tampon care specifică două filtre de nume de fișier care utilizatorul poate selecta pentru a limita fișierelor care sunt afișate. Tamponul conține un dublu-null închisă Tablou de siruri de caractere în care fiecare pereche de siruri de caractere specifică un filtru. Membru nFilterIndex specifică că primul model este folosit atunci când se creează caseta de dialog.

Acest exemplu seturi steagurile OFN_PATHMUSTEXIST ?i OFN_FILEMUSTEXIST în membre steaguri . Aceste semnalizări cauza caseta de dialog pentru a verifica, înainte de a reveni, calea și numele de fișier specificat de utilizator de fapt existente.

Funcția GetOpenFileName întoarce TRUE dacă utilizatorul face clic pe butonul OK și specifică calea și numele fișierului există. În acest caz, tampon a subliniat de membru lpstrFile conține calea și numele fișierului. Mostre de cod utilizează aceste informații într-un apel la CreateFile funcție pentru a deschide fișierul.

Deși acest exemplu nu setați pavilion OFN_EXPLORER, încă se afișează caseta de dialog stil Explorer deschise implicit. Cu toate acestea, dacă doriți să se prevadă o procedură de cârlig sau un șablon particularizat și doriți interfața cu utilizatorul Explorer, trebuie să setați pavilion OFN_EXPLORER.

OPENFILENAME ofn;       / / caseta de dialog comun structura
szFile char [260];       / / tampon pentru nume de fișier
HWND hwnd;              / / proprietar fereastra
MÂNER hf;              / / Fișier mâner

/ / Ini?ializarea 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.Steaguri = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

/ / Afișa caseta de dialog Deschidere. 

Dacă (GetOpenFileName(&ofn) == adevărat) hf = CreateFile (ofn.lpstrFile, GENERIC_READ,
        0, NULL (LPSECURITY_ATTRIBUTES),
        OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,
        (MÂNER) NULL) 

Index