Öffnen einer Datei

Dieses Thema beschreibt Beispielcode, die ein Dialogfeld " Öffnen " anzeigt, so dass ein Benutzer angeben kann den Laufwerk, Verzeichnis und den Namen einer Datei zu öffnen. Der Code initialisiert zuerst eine OPENFILENAME -Struktur, und ruft dann die Funktion GetOpenFileName , um das Dialogfeld anzuzeigen.

In diesem Beispiel zeigt das Element LpstrFilter auf einen Puffer, der zwei Dateiname Filter angibt, die der Benutzer auswählen kann, um die Dateinamen zu begrenzen, die angezeigt werden. Der Puffer enthält ein Doppel-Null endendes Array von Zeichenfolgen, in denen jedes Paar von Zeichenfolgen einen Filter gibt. Das nFilterIndex Mitglied gibt an, dass das erste Muster verwendet wird, wenn das Dialogfeld erstellt wird.

In diesem Beispiel wird die OFN_PATHMUSTEXIST und OFN_FILEMUSTEXIST Flaggen in den Flags . Diese Flags führen im Dialogfeld überprüfen, bevor Sie zurückkehrt, die den Pfad und Dateinamen, die vom Benutzer angegebenen existieren.

Die GetOpenFileName -Funktion gibt TRUE zurück, wenn der Benutzer klickt auf die Schaltfläche OK und dem angegebenen Pfad und Dateiname vorhanden ist. In diesem Fall enthält der Puffer, auf den der LpstrFile -Member den Pfad und den Dateinamen. Der Beispielcode verwendet diese Informationen in einem Aufruf der CreateFile -Funktion zum Öffnen der Datei.

Obwohl in diesem Beispiel wird das OFN_EXPLORER-Flag nicht festgelegt wird, wird das Dialogfeld Standard-Explorer-Stil geöffnet noch angezeigt. Allerdings müssen wenn Sie eine Hook-Prozedur oder eine benutzerdefinierte Vorlage bereitstellen möchten und Sie die Explorer-Oberfläche möchten, Sie das OFN_EXPLORER-Flag festlegen.

OPENFILENAME Ofn;       / / gemeinsame Dialogfeld Struktur
Char SzFile [260];       / / Puffer für Dateiname
HWND Hwnd;              / / Besitzerfenster
HANDLE Hf;              / / Datei Handle

/ / Initialize 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.Flaggen = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

/ / Anzeige des Dialogfeldes Öffnen. 

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

Index