Openen van een bestand

Dit onderwerp wordt beschreven voorbeeldcode waarmee een dialoogvenster openen wordt weergegeven zodat een gebruiker opgeven kan, het station, map en naam van een bestand te openen. De voorbeeldcode eerst initialiseert een NAAMOPENBESTAND structuur, en roept vervolgens de functie GetOpenFileName om het dialoogvenster weer te geven.

In dit voorbeeld wordt het lpstrFilter lid verwijst naar een buffer waarmee twee filename filters die de gebruiker selecteren kan om te beperken de bestandsnamen die worden weergegeven. De buffer bevat een dubbel-null beŽindigd matrix van tekenreeksen waarin elk paar van tekenreeksen Hiermee geeft u een filter. Lid van de nFilterIndex geeft aan dat het eerste patroon wordt gebruikt wanneer het dialoogvenster is gemaakt.

In het volgende voorbeeld worden de OFN_PATHMUSTEXIST en OFN_FILEMUSTEXIST vlaggen in de vlaggen lid. Deze vlaggen veroorzaken het dialoogvenster om te controleren of, voordat u terugkeert, die het pad en de bestandsnaam opgegeven door de gebruiker werkelijk bestaan.

De functie GetOpenFileName retourneert TRUE als de gebruiker op de knop OK klikt en het opgegeven pad en de bestandsnaam bestaan. In dit geval, bevat de buffer waarnaar wordt verwezen door de lpstrFile lid het pad en de bestandsnaam. De voorbeeldcode gebruikt deze informatie in een aanroep van de CreateFile functie om het bestand te openen.

Hoewel dit voorbeeld niet de vlag OFN_EXPLORER stelt, weergegeven het nog steeds de standaard Verkenner-stijl Open dialoogvenster. Echter, als u wilt geven een haak-procedure of een aangepaste sjabloon en u de Explorer-gebruikersinterface wilt, moet u de vlag OFN_EXPLORER instellen.

NAAMOPENBESTAND ofn;       / / common dialog box structuur
CHAR szFile [260];       / / buffer voor bestandsnaam
HWND hwnd;              / / eigenaar venster
HANDVAT hf;              / / bestand handvat

/ / NAAMOPENBESTAND initialiseren
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.Vlaggen = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

/ / Het dialoogvenster Openen weergeven. 

Als (GetOpenFileName(&ofn) == TRUE) hf = CreateFile (ofn.lpstrFile, GENERIC_READ,
        0, NULL (LPSECURITY_ATTRIBUTES),
        OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,
        (HANDLE) NULL) 

Index