MFC vs WindowsForms

Reverent

Erfahrenes Mitglied
Hallo Leute,
ich habe VS2005 und unter C++ kann ich aus wählen WindowsForm oder MFC was ist da der Unterschied und was ist MFC eigentlich genau?

Bis jetzt habe ich immer nur mit C# gearbeitet und noch nie MFC benutzt.
Mal als Laie gesprochen:"MFC ist die grafische Oberfläche für C++."

Bitte um etwas Nachhilfe!

Danke schon mal
Reverent
 
Zuletzt bearbeitet:
MFC-Anwendungen unterscheiden sich von "normalen" WindowsForm Anwendungen, dass man innerhalt eines "WindowsForms" verschiedene Fenster laden kann. D.h. Du hast ein großes Fenster mit kleineren Fenstern drinnen.
WindowsForm-Anwendungen bestehen aus einem Fenster, dass keine "Sub-Fenster" beinhaltet.

Du kannst aber bei beiden Anwendungstypen mehr als ein WindowsForm definieren. Bei MFC erübrigt sich das aber meistens, da du ja innerhalb des Hauptfensters die Unterfenster zum belegen hast.

MFC braucht man in der Regel eher selten. Nur aufwendigere Programme besitzen eine solche Struktur. Und ehrlich gesagt sieht es auch irgendwie nicht so toll aus, da, wenn man zu viele Fenster im Hauptfenster offen hat, die Übersicht flöten geht.
Für ein "normales" Programm reicht eine WindowsForm Anwendung.

MfG
monger;)
 
Danke für Deine Antwort,
wenn ich bei den WindowsForms mit mehrern Fentern arbeite mache ich das über MDI ich finde das ist bei Programmen mit mehreren Fenstern eine feine Sachen.

Wie ist den die Programmierung unter MFC genau so wie unter den WindowsForms?

Bis dann
Reverent
 
Zuletzt bearbeitet:
Wenn du WindowsForms benutzt arbeitest du mit der .NET-Klassenbibliothek, im anderen Fall eben mit der MFC(Microsoft Foundation Classes)-Klassenbibliothek. Der Unterschied ist also die verwendete Klassenbibliothek. Die Entscheidung für das eine oder andere hat nachhaltige Auswirkungen auf das Sprachkonzept, daher kann man beides auch nicht vermischen. Bei der MFC wird das übliche C++ benutzt, während bei WindowsForms-Apps sogenanntes "Managed C++" zum Einsatz kommt.

Gruß
MCoder
 
Upps, sorry wegen der Fehlinfo.
Hab mich da vertan ;)
MCoder hat natürlich vollkommen recht...MFC != MDI...
 
Wie richtig gesagt, handelt es sich um zwei verschiedene Klassenbibliothen bzw. Frameworks.
Allerdings bietet C++ und nur C++ die Möglichkeit beide Bibliotheken zu mischen. Was auch durchaus Sinn macht. So kann ich z.B. eine Fensteranwendung mit Hilfe von WindowsForms erzeugen und für verschiedene Methoden innerhalb der Anwendung z.B. die Klasse CString verwenden, oder was sicherlich noch viel häufiger vorkommen könnte die zahlreichen Containerklassen aus der STL.

Gruß
Gerhard
 
Zurück