Beispiel 1: Einfachstes denkbares MFC-Beispiel
Dieses Beispiel zeigt die minimalst mögliche MFC-Anwendung, nämlich eine CView mit
minimalen Zeichenoperationen.
Hier gibt es das Beispiel zum Download: MFCMinimal.zip
Schritt 1: Anwendungsgerüst
Erstellen des Anwendungsgerüsts (SDI-Anwendung) gemäß Beschreibung von Hr. Dreher.
Einziger Unterschied ist dass wir im letzten Schritt als Basisklasse der View-Klasse
"CView" auswählen.
Die in Hr. Drehers Anleitung deaktivierte Druckunterstützung (Schritt "Erweiterte Features") können wir belassen,
da eine CView druckbar ist.
Schritt 2: In der CView-Klasse ein bißchen Zeichenlogik zufügen
Die Datei "MFCMinimalView" öffnen und die Methode "OnDraw" öffnen.
Zuallererst einmal muss der auskommentierte Parameter "pDC" einkommentiert werden
(Mysteriös, mysteriös... In der vorherigen Visual-Studio-Version gab es dieses Verhalten nicht...).
Der Methodenkopf sollte also so aussehen:
void CMFCMinimalView::OnDraw(CDC* pDC)
In der Methode nach dem TODO folgenden Code einfügen:
pDC->Rectangle (100, 100, 200, 200);
Dadurch wird ein Rechteck an der Stelle 100/100 bis 200/200 gezeichnet.
Das Codebeispiel enthält außerdem noch ein Stück Code mit einem erweiterten Zeichenbeispiel
(Hintergrund- und Vordergrundfarbe geändert):
//Ein Rechteck in anderer Vordergrund- und Hintergrundfarbe.
//Dazu müssen wir uns einen Brush definieren.
CBrush *brushRed = new CBrush (RGB (255, 0, 0) );
CPen *penBlue = new CPen (PS_SOLID, 2, RGB (0, 0, 255) );
pDC->SelectObject (brushRed);
pDC->SelectObject (penBlue);
//Noch ein Rechteck, diesmal gefüllt...
pDC->Rectangle (100, 210, 200, 310);
//Den Brush und den Pen wieder freigeben:
delete brushRed;
delete penBlue;
Beachtet was beim Beenden des Programms im "Output"-Fenster steht, wenn die beiden "delete"-Zeilen auskommentiert sind !
Detected memory leaks!
Dumping objects ->
c:\temp\mfcminimal\mfcminimalview.cpp(62) : {118} client block at 0x003265B0, subtype c0, 8 bytes long.
a CPen object at $003265B0, 8 bytes long
c:\temp\mfcminimal\mfcminimalview.cpp(61) : {114} client block at 0x003257B0, subtype c0, 8 bytes long.
a CBrush object at $003257B0, 8 bytes long
Object dump complete.
Also immer schön den Speicher aufräumen !
Fertisch !
Version 1.0.0.0, Stand 02.04.2005
Historie: