Otwieranie pliku

W tym temacie opisano przykładowy kod, który wyświetla okno dialogowe Otwórz , dzięki czemu użytkownik może określić dysk, katalog i nazwę pliku do otwarcia. Przykładowy kod najpierw inicjuje strukturę OPENFILENAME , a następnie wywołuje funkcję GetOpenFileName , aby wyświetlić okno dialogowe.

W tym przykładzie element lpstrFilter punkty do buforu, który określa dwa filtry nazw plików, które użytkownik może wybrać do ograniczenia nazw plików, które są wyświetlane. Bufor zawiera tablicę zakończonym dwoma wartościami null ciągów, które filtr Określa pary ciągów. Członek nFilterIndex określa, że pierwszy deseń jest używany podczas tworzenia okna dialogowego.

W tym przykładzie Ustawia flagi OFN_PATHMUSTEXIST i OFN_FILEMUSTEXIST, członka flagi . Te flagi spowodować okna dialogowego sprawdzić, przed zwróceniem, które rzeczywiście istnieje ścieżka i nazwa pliku określona przez użytkownika.

Funkcja GetOpenFileName zwraca wartość TRUE, jeśli użytkownik kliknie przycisk OK i istnieje określona ścieżka i nazwa pliku. W tym przypadku bufor wskazywanego przez członka lpstrFile zawiera ścieżkę i nazwę pliku. Przykładowy kod wykorzystuje te informacje w wezwaniu do funkcji CreateFile do otwarcia pliku.

Chociaż w tym przykładzie nie ustawia flagę OFN_EXPLORER, wciąż wyświetla okno dialogowe Otwórz stylu Eksploratora domyślne. Jednakże jeśli chcesz udostępnić procedurę haka lub niestandardowy szablon interfejs użytkownika programu Eksplorator, należy ustawić flagę OFN_EXPLORER.

OPENFILENAME ofn;       / / wspólne dialogowego struktury
char szFile [260];       / / buforu dla pliku
HWND hwnd;              / / właściciel okna
UCHWYT hf;              / / pliku uchwyt

/ / Inicjuj 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.Flagi = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

/ / Wyświetlanie okna dialogowego Otwieranie. 

Jeżeli (GetOpenFileName(&ofn) == TRUE) hf = CreateFile (ofn.lpstrFile, GENERIC_READ,
        0, WARTOŚĆ NULL (LPSECURITY_ATTRIBUTES),
        OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,
        (UCHWYT) WARTOŚĆ NULL) 

Index