OpenFileDialog erscheint nicht



  • Hallo alle zusammen,

    ich habe folgendes Programm geschrieben das die Funktion erfüllen soll einen
    OpenFileDialog zu öffnen in dem der Anwender eine Datei auswählen kann ohne
    umständlich den ganzen Pfad in die Console eintippen zu müssen.

    Das Programm funktioniert soweit, jedoch scheint er den Dialog zwar zu öffnen,
    den das Consolefenster wird inaktiv, jedoch erscheint der Dialog nicht auf dem
    Bildschrim und das Programm bleibt einfach stehen.

    Vieleicht könnt ihr mir weiterhelfen? Nachfolgend der Code:

    #include <iostream>
    #include <windows.h>
    
    using namespace std;
    
    int main()
    {
    	cout << "Test für einen FileOpendialog\n";
    
    	OPENFILENAME ofn;
        char szFileName[MAX_PATH] = "";
    
        ZeroMemory(&ofn, sizeof(ofn));
    
        ofn.lStructSize = sizeof(ofn); // SEE NOTE BELOW
        ofn.hwndOwner = NULL;
        ofn.lpstrFilter = "Text Files (*.txt)\0*.txt\0All Files (*.*)\0*.*\0";
        ofn.lpstrFile = szFileName;
        ofn.nMaxFile = MAX_PATH;
    	ofn.lpstrFileTitle = NULL;
    	ofn.nMaxFileTitle = 0;
        ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
        ofn.lpstrDefExt = "txt";
    
        if(GetOpenFileName(&ofn))
        {
            // Do something usefull with the filename stored in szFileName 
    		cout << "Angewaehlte Datei: " << szFileName << "\n\n";
        }
    	cout << "Ende des Dialoges....";
    	system("pause");
    }
    


  • Also bei mir funktioniert dein Code einwandfrei... FileDialog erscheint.



  • Bei mir auch... sehr eigenartig. Soweit ich weiß ist das OS technisch nicht sehr anfällig.



  • Hmm... seltsam. Eine Idee woran es liegen könnte das es nicht funktioniert?
    Kann es am OS liegen? (arbeite auf einem Win2k System)

    Danke für die schnelle Antwort!



  • Es wird immer seltsamer, versuchshalber bin ich mal vom Debug in Relase Modus
    gewechselt, da hat es einwandfrei funktioniert, nun bin ich wieder in den
    Debug zurück gewechselt und nun funktioniert es auch dort *lol*

    Ich habe nicht den Code geändert...



  • Müsste der Filter nicht mit einer Doppel-Null abgeschlossen sein?


Anmelden zum Antworten