Standarddialog - CFileDialog: 2. Dateiendung im Filter als Vorauswahl



  • Hallo @all,

    ich kämpfe hier mit einem Problem, worauf ich im Netz / MSDN / Forum keine Antwort finde:

    Ich erzeuge einen Standarddateiauswahldialog:

    CString m_sFilter = "Text-Dateien (*.txt)|*.txt|Access-Dateien (*.mdb)|*.mdb|Alle Dateien (*.*)|*.*||";
    
    CFileDialog dlg (FALSE, "mdb",  "", OFN_CREATEPROMPT | OFN_EXPLORER | OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY, m_sFilter);
    

    Nun möchte ich gerne die ".mdb"-Dateien als Vorauswahl treffen, dies ist aber nicht der 1. String im Dateifilter, sondern der 2.
    MFC nimmt aber anscheinend standardmäßig immer den 1. String als Vorauswahl für die auszuwählende Dateien, in meinem Beispiel also die Textdateien (
    .txt).

    Wie kann ich es forcieren, ohne die Filterreihenfolge zu ändern, dass trotzdem als Standard die *.mdb-Auswahl erscheint? 😕

    Im Nachhinein dlg.SetDefExt("mdb"); zu setzen hat auch nicht funktioniert.



  • Setz doch mal den Wert von dlg.m_ofn.nFilterIndex auf den gewünschten Dateityp, bevor du den Dialog anlaufen lässt (Zählung ab 1, d.h. *.mdb hätte den Index 2).



  • Hey CStoll,

    super!

    Danke für die schnelle Hilfe, funktioniert bestens! 🙂


Anmelden zum Antworten