mikrocontroller.net

Forum: PC-Programmierung MFC "Datei öffnen", fertige Klasse?


Autor: Patrick B. (p51d)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo miteinander

Ich hab einmal ne Frage: Gibts das Datei öffnen Klasse? Weil ich habe 
mich gefragt, ob das wirklich jedesmal neu programmiert wird. Wenn ich 
in irgend einem Programm eine Datei öffnen möchte sehen die Formen immer 
gleich oder sehr ähnlich aus.

Hoffe ihr könnt mir da weiterhelfen
falls ihr nicht ganz genau wisst, was ich meine.. nur fragen.
MFG
Patrick

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schreib dir doch eine.
GetOpenFilenName und GetSaveFileName gehören ja noch in die einfacher zu 
verstehenderen WinAPI-Funktionen

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sowas?
http://msdn.microsoft.com/en-us/library/dk77e5e7(VS.80).aspx

Ansonsten bitte eine verständliche Frage formulieren....

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also bevor ich mit solchen kruden MFC-Klassen arbeiten würde, würde ich 
mir das ganze selbst kapseln.

Ich würde eine Klasse so aufbauen:
FileDialog();

public:
void addFileNameTemplate(string template, string description);
setDefaultDir(string defaultdir);

/** returns empty string if no valid file was selected*/
string getOpenFileName();

/** returns empty string if no valid file was selected*/
string getSaveFileName();

eventuell auch sowas, um die Abbruchbedingungen besser handlen zu 
können:
enum FileDLGStatus{... };
FileDLGStatus getOpenFileName(string &o_selectedFile);

Autor: Patrick B. (p51d)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klaus Wachtler schrieb:
> sowas?
> http://msdn.microsoft.com/en-us/library/dk77e5e7(VS.80).aspx

genau sowas hab ich gesucht. Danke

Vlad Tepesch schrieb:
> also bevor ich mit solchen kruden MFC-Klassen arbeiten würde, würde ich
> mir das ganze selbst kapseln.

Das nicht alles auf der Welt Perfekt ist, weiss ich, aber mir wurde von 
einem CEO (arbeitet nebenbei als C Lehrer) beigebracht, dass man 
"wirtschaftlicht" denken soll, also wozu viel Zeit in etwas investieren, 
wenns schon exisiert?
Um beim Motto "wieso das Rad zweimal erfinden" zu bleiben.
Trifft jetzt vielleicht nicht ganz deine Ansichten...

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn du aber die Zeit mit einrechnest, die du bei jeder Benutzung länger 
brauchst, weil du bei jeder Benutzung wieder in die Refenrenz schauen 
musst und dich um die Verwaltung des Speichers selbst kümmern musst oder 
hinterher Leaks oder andere Bugs suchst, dann hat sich die Stunde 
schnell rentiert, die man in eine vernünftige Kapselung dieser 
Funktionen steckt.

Am wirtschaftlichsten ist es wahrscheinlich, sich in ein 
plattformunabhängiges GUI-Framework mit vernünftiger c++ Schnittstelle 
einzuarbeiten (zB QT)

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zu Qt: ACK

Geht viel einfacher, problemärmer und schneller als MFC.
Das geht sogar so glatt, daß es Spaß macht, während ich mich
über MFC bisher nur geärgert habe.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.