Erweiterungen für "Speichern-Dilaog" festlegen
-
Hallo
Ich öffne mitels
CFileDialog Dialog(FALSE); if(Dialog.DoModal() == IDOK)einen Dilaog und würde bei diesem gerne vorher die Dateierweiterung festlegen. Wie geht das?
Vielen Dank
chrische
-
Wenn Du unter Dateierweiterung dasselbe verstehst wie ich unter Dateiendung:
Damit hatte ich auch einige Zeit Probleme. Nachdem einiges andere nicht funktionierte, klappte schließlich:CFileDialog schreibdialog(FALSE,static_cast<LPCTSTR>(L"txt"),static_cast<LPCTSTR>(L"vorgeschlagener Name"),OFN_EXPLORER,static_cast<LPCTSTR>(L"Textdatei (*.txt) |*.txt|Textdatei (*.dat) |*.dat|alle Dateien (*.*) |*.*|" ));
-
dong schrieb:
CFileDialog schreibdialog(FALSE,static_cast<LPCTSTR>(L"txt"),static_cast<LPCTSTR>(L"vorgeschlagener Name"),OFN_EXPLORER,static_cast<LPCTSTR>(L"Textdatei (*.txt) |*.txt|Textdatei (*.dat) |*.dat|alle Dateien (*.*) |*.*|" ));Diese cast's sind alle Überflüssig und würden in enem MBCS Programm zur Fehlfunktion führen.
Einfach nur _T Makros verwenden:CFileDialog schreibdialog(FALSE,_T("txt"),_T("vorgeschlagener Name"),OFN_EXPLORER,_T("Textdatei (*.txt) |*.txt|Textdatei (*.dat) |*.dat|alle Dateien (*.*) |*.*|" ));
-
Danke für die Infformation!
Ist aus ähnlichen Gründen das _T Makro auch dem T Makro vorzuziehen,
ist also z.B. MessageBox(_T("Text")); besser als MessageBox(L"Text"); ?
-
dong schrieb:
Danke für die Infformation!
Ist aus ähnlichen Gründen das _T Makro auch dem T Makro vorzuziehen,
ist also z.B. MessageBox(_T("Text")); besser als MessageBox(L"Text"); ?Zweiteres geht nur bei einem Unicode build erstes geht für MBCS und Unicode.
Weiterer Tip: AfxMessaageBox ist auch der Funktion MessageBox vorzuziehen, da AfxMessageBix zentralere Funktionen bietet und auch sicherer das aktuelle Fenster disabled/enabled.
Meiner Meinung nach hätte MessageBox direkt in der nachfolge Version von MFC 1.0 entfernt werden müssen, aber ist aus Kompatibilität drin geblieben.
-
Danke!