Übersicht MFC

Beginnen wir den Einstieg in die MFC -Programmierung zunächst mit einer (sehr) kurzen Übersicht über die MFC. Das nachfolgende Diagramm zeigt Ihnen nur einen Ausschnitt aus der Klassenhierarchie. Eine vollständige Übersicht finden Sie in der Online-Hilfe.

Ausschnitt aus den MFC-Klassen

Die Basisklasse für die meisten MFC-Klassen  ist die Klasse CObject. Sie verleiht den von ihr abgeleiteten Klassen die Möglichkeit, ihre Daten in Dateien abzulegen (auch Serialisierung genannt) und fügt den Klassen Laufzeit-Informationen hinzu.

Von CObject abgeleitet ist die Klasse CCmdTarget. Sie verleiht den von ihr abgeleiteten Klassen die Eigenschaft Nachrichten verarbeiten zu können. Wenn Sie sich das Diagramm oben einmal ansehen werden Sie feststellen, dass unter der MFC nicht nur Fenster (repräsentiert durch die Klasse CWnd) Nachrichten verarbeiten können, sondern auch Threads (hier gleich Tasks) und Dokumente. Mehr dazu aber im weiteren Verlauf des Kurses.

An nächster Stelle in der Hierarchie folgt die Klasse CWinThread und die davon abgeleitete CWinApp. Diese Klassen stellen den Rahmen für MFC-Anwendungen zur Verfügung.

Ebenso ist die Klasse CDocument eine Ableitung von CCmdTarget. In den von CDocument abgeleiteten Klassen speichert eine Doc/View basierende MFC-Anwendung in der Regel ihre Daten. Die Klasse CDocument besitzt z.B. die Eigenschaft, Dateien zu öffnen und Daten abzuspeichern und auch wieder einzulesen.

Eine weitere sehr wichtige Klasse ist die Klasse CWnd. Diese Klasse enthält die Grundeigenschaften aller Fenster. Von CWnd ist unter anderem die Klasse CFrameWnd abgeleitet. CFrameWnd erweitert CWnd um Eigenschaften wie z.B. die Menüleiste. Ebenfalls eine Ableitung von CWnd ist die Klasse CControlBar.   Diese Klasse enthält so nützliche Elemente wie Toolbars oder auch die Statuszeile. Für die Darstellung von Dialogen dient die Klasse CDialog. CView-Klassen werden im Zusammenhang mit CDocument-Klassen eingesetzt und dienen zur Visualisierung der Daten aus einem CDocument-Objekt. Die letzte, und auch größte Gruppe von Klassen, ist die Klasse der Controls. Zu ihr gehören Elemente wie Comboboxen, Buttons aber auch kompliziertere Elemente wie Treeviews.

Am unteren Rand im obigen Bild sind einige der von CObject aber nicht vom CCmdTarget abgeleiteten Klassen aufgeführt. Die von CObject abgeleitete Klasse CException ist Basisklasse für weitere Klassen zur Handhabung von Ausnahmezuständen (Exceptions).

Für die Handhabung von Dateizugriffen (bei Anwendungen ohne Doc/View Modell) werden Objekte der Klasse CFile oder einer davon abgeleiteten Klassen eingesetzt.

Eine weitere von CObject abgeleitete Klasse ist die Klasse CDC. Diese Klasse kontrolliert alle Zeichenoperationen und enthält u.a. den im vorherigen Kapitel kurz erwähnten Device Context.

Zum Zeichnen selbst werden Objekte von der Klasse CGdiObject abgeleiteten Klassen eingesetzt. Dazu gehören z.B. Klassen wie CBitmap zur Darstellung von Bitmaps aber auch einfache Klassen wie CPen um einen Zeichenstift zu erstellen.

Außer diesen von CObject abgeleiteten Klassen enthält die MFC noch eine ganze Reihe weiterer Klassen deren Aufzählung aber den Rahmen hier sprengen würde. Sehen Sie dazu in der Online-Hilfe unter dem Stichwort MFC Hierarchie nach. Wenn im Verlaufe des Kurses neue Klassen eingeführt werden, so werden deren wichtigste Elemente natürlich beschrieben.

Beenden wir hier die Klassenübersicht und wenden uns der Frage zu: woraus besteht nun ein minimales MFC-Programm letztendlich? Nun, jedes WINDOWS Programm benötigt zunächst ein Rahmenprogramm, so wie Sie es im letzten Kapitel kennen gelernt haben. Dieses Rahmenprogramm führt die Initialisierung der Anwendung durch, registriert die verwendete WINDOWS Fensterklasse und enthält die Nachrichtenschleife. Diese Funktionalität ist laut obiger Aufstellung in der Klasse CWinApp enthalten. Ferner besitzt fast jedes WINDOWS Programm ein Fenster. Fenster werden in der MFC durch die Klasse CWnd repräsentiert. Da CWnd aber nur die Grundfunktionen für Fenster enthält wird in der Regel für das Hauptfenster der Anwendung ein Objekt einer von der Klasse CWndFrame abgeleiteten Klasse eingesetzt.

Sehen wir uns nun in der nächsten Lektion einmal die Anwendungsklasse CWinApp an.



Copyright © 2004

Senden Sie Emails mit Fragen oder Kommentaren zu dieser Website an: mailto:info@cpp-tutor.de
 Wolfgang Schröder, Lerchenweg 23, D-72805 Lichtenstein. Tel: +49 7129 6470