Åpning av en fil

Dette emnet beskriver eksempelkode som viser en Åpne -dialogboks slik at en bruker kan angi stasjonen, katalog, og navnet på filen du vil åpne. Eksempelkoden initialiserer først en OPENFILENAME struktur, og deretter kaller den GetOpenFileName -funksjonen for å vise dialogboksen.

I dette eksemplet er det lpstrFilter -medlem som peker til en buffer som angir to filnavn filter som brukeren kan velge for å begrense filnavnene som vises. Bufferen inneholder en dobbel-null-avsluttede matrise av strenger som er der hvert par angir et filter. NFilterIndex -medlem angir at det første mønsteret brukes når dialogboksen er opprettet.

Dette eksemplet angir flaggene OFN_PATHMUSTEXIST og OFN_FILEMUSTEXIST i flaggene -medlem. Disse flaggene føre til dialogboksen for å bekrefte, før retur, som banen og filnavnet som er angitt av brukeren faktisk eksisterer.

GetOpenFileName -funksjonen returnerer SANN hvis brukeren klikker OK -knappen og angitte banen og filnavnet finnes. I dette tilfellet inneholder bufferen som medlemmet lpstrFile peker til banen og filnavnet. Eksempelkoden bruker denne informasjonen i et kall til den CreateFile -funksjon for å åpne filen.

Selv om dette eksemplet ikke angir flagget OFN_EXPLORER, er det fortsatt viser standard Explorer-stil Åpne dialogboksen. Hvis du vil gi en hook-prosedyre eller en egendefinert mal, og du vil bruke Explorer-brukergrensesnittet, må du imidlertid angi flagget OFN_EXPLORER.

OPENFILENAME ØFN;       / / felles struktur, dialogboks
char szFile [260];       / / bufre for filnavn
HWND hwnd;              / / Eiervinduet
HÅNDTERE hf;              / / fil håndtaket

/ / Initialisere OPENFILENAME
ZeroMemory (amp; ØFN, 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;
ØFN.Flagg = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

/ / Vise dialogboksen Åpne. 

Hvis (GetOpenFileName(&ofn) == TRUE) hf = CreateFile (ofn.lpstrFile, GENERIC_READ,
        0, NULL (LPSECURITY_ATTRIBUTES),
        OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,
        (HÅNDTERE) NULL) 

Index