Die Richtige if-anweisung

Nabi

Erfahrenes Mitglied
Code:
void openfile(){

ZeroMemory(&opn, sizeof(OPENFILENAME));



    opn.lStructSize       = sizeof(OPENFILENAME);
    opn.hwndOwner         = hWnd;
    opn.lpstrFile         = tz1;
    opn.nMaxFile          = sizeof(tz1);
    opn.lpstrFilter       = "Bitmaps (*.bmp)\0*.bmp\0";
    opn.nFilterIndex      = 1;
    opn.lpstrFileTitle    = NULL;
    opn.nMaxFileTitle     = 0;
    opn.lpstrInitialDir   = NULL;
    opn.hInstance         = hInstance;
    opn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST|OFN_NOVALIDATE;
    bfile=GetOpenFileName(&opn);
    csave=1;


}

Hi , In diesem Beispiel öffnet sich ein "OPEN FILE FENSTER" , Das Problem ist:
Manchmal will man das Fenster wieder schließen ohne ein File zu Wählen/Öffnen
Wie Informiere ich das Programm dass das Fenster ist geschlossen , welche if anweisung soll ich in diesem fall im Programm
Schreiben?.. sonst wählt das Programm beim schliessen etweder ein leere Name oder das letzte
gewählte file-Name
und das will ich verhindern.
danke in Voraus.
 
Ich habe versucht mit

if (WM_DESTROY){ ........};

aber immer TRUE?
 
Zuletzt bearbeitet:
Auszug aus WinApi32

GetOpenFileName(..);

If the user cancels or closes the Open dialog box or an error occurs, the return value is zero. To get extended error information, call the CommDlgExtendedError function, which can return one of the following values:

CDERR_FINDRESFAILURE CDERR_NOHINSTANCE
CDERR_INITIALIZATION CDERR_NOHOOK
CDERR_LOCKRESFAILURE CDERR_NOTEMPLATE
CDERR_LOADRESFAILURE CDERR_STRUCTSIZE
CDERR_LOADSTRFAILURE FNERR_BUFFERTOOSMALL
CDERR_MEMALLOCFAILURE FNERR_INVALIDFILENAME
CDERR_MEMLOCKFAILURE FNERR_SUBCLASSFAILURE
 
Danke .. Das problem ist damit gelöst so:

if ( ! bfile || strlen (tz1) <1){anweisung...};

mit ! bfile // liefert False wenn Man das Fenster Schliesst
strlen(tz1) // falls Man Nichts gewählt hat aber trotzdem öffnen anklickt (klingt Verrück aber sollte man alle möglichkeiten in betracht ziehen ).
 
Zuletzt bearbeitet:
Code:
opn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST...

somit ist ausgeschlossen, das man auf öffnen klickt, jedoch nichts ausgewählt hat.
 
Zurück