Vorheriges Kapitel:  Grundlagen   Nächstes Kapitel:    Windows Standardsteuerelemente       Inhaltsverzeichnis Inhaltsverzeichnis       Die Downloadseite Download       Kontakt Kontakt

 

Erstellen Ihrer ersten Anwendung

 

 

Phase 1: Erstellung der Anwendung mit AppWizard
Phase 2: Visueller Entwurf Ihrer Dialogseite
Phase 3: Steuerelemente mit Funktionalität versehen
Phase 4: Darstellung der Dialogseite auf den Bildschirm

 

 

Als Ihrer ersten Anwendung werden Sie einen Taschenrechner programmieren. Bereits mit diesem Programm werden Sie die grundlegenden Techniken und Funktionen eines normalen Programms kennenlernen.
Wir entwerfen einen Taschenrechner, der die Operationen Addition, Subtraktion, Multiplikation und Division durchführen kann. Das Programm wird mit einem Mausklick aktiviert und mit Exit beendet.
Für den Entwurf einer derartigen Anwendung müssen Sie einige Phasen durchlaufen, die Sie sich anmerken sollten.

 

Phase 1: Erstellung der Anwendung mit AppWizard:

 

Starten Sie AppWizard indem Sie auf das Menü Datei /Neu klicken. Wählen Sie den Register Projekte und markieren Sie die Option MFC Anwendungsassisten(exe) bzw. AppWizard. Geben Sie Ihrem Projekt den Namen trechner und wählen Sie das gewünschte Verzeichnis, worunter das Projekt trechner angelegt werden sollte. Bestätigen Sie Ihre Eingaben mit OK. Wählen Sie im Schritt 1 des AppWizards die Option SDI(Einzelnes Dokument). Akzeptieren Sie die Einstellungen aller anderen Schritte. Somit wird AppWizard die nötigen Dateien und Klassen für Ihre Anwendung anlegen.

 

Phase 2: visueller Entwurf Ihrer Dialogseite:

 

Gehen Sie zum Menü Einfügen/Resource. Markieren Sie Dialog und aktivieren Sie dann die Schaltfläche Neu. Alternativ können Sie unter dem linken Listenfeld im Arbeitsbereich auf die Schaltfläche Resource View klicken. Mit dieser Aktion rufen Sie den Resource-Editor auf. Gehen Sie im Resource-Editor zum Resource Dialog. Sie können mit der rechten Maustaste den Befehl Dialog einfügen aktivieren. Nachdem Sie die Neue Dialogseite angelegt haben, können Sie damit anfangen, die Seite gemäß den Bedürfnissen der Anwendung einzurichten. Für die Anwendung Taschenrechner brauchen wir drei Eingabefelder(Editboxen), fünf Schaltflächen und drei statische Felder. Die Werkzeugleiste im Resource-Editor ist Drag&Drop-fähig. Klicken Sie in die Werkzeugleiste auf das gewünschte Element und positionieren Sie es auf die Dialogseite. Jedes der Steuerelemente mit Ausnahme der statischen Feldern müssen eindeutig bezeichnet werden.Um einem Element eine ID geben zu können, markieren Sie zuerst das gewünschte Element und rufen Sie mit der rechten Maustaste die Eigenschaften dieses Elements.Im Eingabefeld ID können Sie für das Elemt eine Bezeichnung eintragen. Für die Bezeichnung(ID) der visuellen Elementen gibt es gewisse Konventionen, die man besser einhalten sollte. Für die Bezeichnung der Steuerelementen, die man aus der Werkzeugleiste in die Dialogseite eingefügt hat, benutzen Sie den Präfix IDC_ und dann die Bezeichnung des Steuerelements. Für die Schaltfläche + würde dann die Bezeichnung, bzw. die ID IDC_PLUS heißen. Im Menü Layout stehen Ihnen einige Befehle zur Verfügung, mit deren Hilfe Sie die Dialogseite besser ordnen können. Sie können dort z.B. die Tabulatorreihenfolge festlegen.


Abbildung

 

Phase 3: Steuerelemente mit Funktionalität versehen:

 

Nachdem Sie die äußerliche Darstellung Ihres Programms gemeistert haben, fängt die wirkliche Aufgabe des Programmierers an. Die ganzen Editboxen, Schaltflächen usw., die Sie in Ihre Dialogseite eingebaut haben, müssen nämlich mit Leben gefüllt werden. Das Programm weiß ja nicht von allein, was Sie etwa mit den Schaltflächen und anderen Steuerelementen bezwecken möchten. Um konkret auf den Taschenrechner zurückzukommen, müssen wir uns erst einmal die Art und Weise, wie die Anwendung funktionieren sollte, vor den Augen führen. Wir geben eine erste Zahl und eine Zweite Zahl in den beiden ersten Editboxen ein, dann haben wir die Möglichkeit, auf einen der vier Schaltflächen +, -, * oder / mit der linken Maustaste zu drücken. Mit dem Mausklick sollte dann die gewünschte Rechenoperation durchgeführt und das Ergebnis in die dritte Editbox gezeigt werden. In der Regel werden Sie für eine Editbox immer eine Variable und für eine Schaltfläche eine Funktion deklarieren. Hierfür müssen Sie folgendermaßen vorgehen:

Wenn Sie mit der rechten Maustaste auf Ihre Dialogseite klicken, dann wird auf die Leiste u.a. auch der Befehl ClassWizard anzeigt. Wenn Sie ClassWizard zum ersten mal für Ihre Dialogseite aufrufen, wird er erkennen, daß Sie Für Ihre Dialogseite noch keine neue Klasse deklariert haben, deshalb fragt er Sie danach, ob er dies für Sie machen sollte.


Abbildung
Geben Sie Ihrer Klasse den Namen CRechner und bestätigen Sie Ihre Eingabe.

Abbildung
Jetzt, wo Ihre Dialogseite die eigene neue Klasse, nämlich CRechner hat, können Sie damit anfangen, die Variablen und Nachrichten-Funktionen zu schreiben. Als erstes deklarieren wir drei variablen vom Typ double für die drei Editboxen. Rufen Sie ClassWizard auf und wählen den Klassennamen Ihrer Dialogseite, nämlich CRechner. Gehen Sie zum Register Member-Variablen. Hier werden Sie alle Steuerelemt-IDs sehen. Doppelklicken Sie auf die Bezeichnung IDC_ZAHL1 oder markieren Sie IDC_ZAHL1 und aktivieren Sie die Schaltfläche Variable hinzufügen. Geben Sie Ihrer Variable den Namen m_zahl1, wählen Sie den Variablentyp double und bestätigen Sie Ihre Eingaben. Für die Beiden nächsten Editboxen gehen Sie ähnlich fort:


Abbildung

IDC_ZAHL2 m_zahl2

IDC_ERGEBNIS m_ergebnis

Nun ist es an der Zeit die Schaltflächen mit Nachrichten-Funktionen zu versehen:

Wählen Sie im ClassWizard den Register Nachrichtenzuordnungstabellen, markieren Sie IDC_PLUS und aktivieren Sie die Schaltfläche Funktion hinzufügen. ClassWizard schlägt Ihnen einen Funktionsnamen, z.B. OnPlus() vor. Akzeptieren Sie den Funktionsnamen. Fahren auch für die nächsten drei Schaltflächen ähnlich fort.


Abbildung

Nachdem Sie alle vier Schaltflächen mit Nachrichten-Funktionen versehen haben, müssen Sie jetzt den Quellcode für die Funktionen schreiben: Markieren Sie IDC_PLUS und aktivieren Sie die Schaltfläche Code bearbeiten, so gelangen Sie zum Funktion OnPlus(), die sich in Rechner.cpp befindet. Die anderen drei Funktionen, OnMinus(), OnMal(), OnTeil() liegen auch in unmittelbarer Nähe zu einander. Der Code für die Vier Funktionen sieht wie folgt aus:

 

void CRechner::OnMal() 
{
UpdateData(TRUE);
m_ergebnis=m_zahl1*m_zahl2;
UpdateData(FALSE); 
}

 

void CRechner::OnMinus() 
{
UpdateData(TRUE);
m_ergebnis=m_zahl1-m_zahl2;
UpdateData(FALSE); 
}

 

void CRechner::OnTeil() 
{
UpdateData(TRUE);
      if(m_zahl2!=0){
m_ergebnis=m_zahl1/m_zahl2;
UpdateData(FALSE);
                    }
                else{
                     AfxMessageBox(" Durch 0 können Sie nicht Teilen !");
                    }
}

 

void CRechner::OnPlus() 
{
UpdateData(TRUE);
m_ergebnis=m_zahl1+m_zahl2;
UpdateData(FALSE); 
}

ClassWizard hat selbstverständlich diese Funktionen in der Datei Rechner.h deklariert.

Wenn Sie sich den Quellcode dieser Funktionen ansehen, dann fällt auf, daß eine MFC Funktion Namens UpdateData(.......) jeweils zweimal in jeder Funktion mit unterschiedlichen Parametern TRUE oder FALSE benutzt worden ist. Es handelt sich hierbei um eine der nützlichsten MFC Funktionen. Um diese Funktion richtig verstehen zu können, müssen wir ein wenig weit ausholen. Wir müssen uns vorstellen können, wie unser Programm abläuft. Nehmen wir an, Sie haben zwei Zahlen eingegeben und möchten diese addieren. Dafür klicken Sie auf die Schaltfläche +. Unser Programm muß nun einige Aufgaben erledigen. Es muß zu erst die beiden Zahlen aus den Editboxen lesen, diese mit einander addieren und das Ergebnis dann in die Editbox Ergebnis ausgeben. Die Funktion OnPlus() muß sich also unmittelbar um drei Aufgaben kümmern: Einlesen, Rechenoperation und Ausgabe. UpdateData(.....) übernimmt das Einlesen und die Ausgabe. Mit den Parametern TRUE oder FALSE bestimmen die Richtung des Datentransportes. Mit UpdateData(TRUE) liest das Programm alle Werte, die Sie in den Boxen eingetippt haben ein und umgekehrt transportiert UpdateData(FALSE) einen oder mehrere Werte in die Editboxen. Vergessen Sie nicht, daß jede Editbox mit einer Variablen verknüpft ist. Der Aufruf von UpdateData(.....) hat eine Aktualisierung der Werte dieser Variablen zur Folge. Sie können die Schaltflächen OK und Cancel auf Ihre Dialogseite belassen, oder aber sie auch löschen. Wenn Sie diese Schaltflächen löschen, müssen eine neue Schaltfläche namens Exit erzeugen und mit dem ClassWizard dafür eine Nachrichten-Funktion dafür schreiben. Der Quellcode der Funktion OnExit( ) sieht wie folgt aus:

void CRechner::OnExit() 
{
OnOK(); 
}

 

 

Phase vier: Darstellung der Dialogseite auf dem Bildschirm:

 

Wenn Sie Ihr Programm bis hier hin entwickelt und getestet haben, werden Sie sich vielleicht wundern, warum Sie nichts von der Dialogseite, die Sie entworfen hatten, auf den Bildschirm sehen. Es ist jedoch alles richtig so. Es steht Ihnen noch eine weitere Aufgabe bevor. Sie müssen nämlich dafür sorgen, daß Ihre Dialogseite mit einer beistimmten Aktion, etwa einem Mausklick, auf den Bildschirm gestartet wird. Starten Sie ClassWizard und Wählen die Klasse CTrechnerView. Markieren Sie bei Object-IDs CtrechnerView und wählen Sie die Nachricht WM_LBUTTONDOWN. Aktivieren Sie die Schaltfläche Funktion hinzufügen. Akzeptieren Sie den von ClassWizard vorgeschlagenen Funktionsnamen und bearbeiten sie den Code. Diese Funktion wird sich in der Ansicht, nämlich die Datei Trechnerview.cpp befinden. Sie sieht wie folgt aus:

 

void CTrechnerView::OnLButtonDown(UINT nFlags, CPoint point) 
{
CRechner dlg;
dlg.DoModal();
CView::OnLButtonDown(nFlags, point);
}

Damit die obigen Anweisungen funktionieren, und die Ansicht bzw. das Anwendungsgerüst unsere Dialogseite und ihre zugehörige Klasse, CRechner erkennt, müssen Sie die Headerdatei Rechner.h am Anfang von TrechnerView.cpp mit der include Anweisung #include"Rechner.h" einbinden. DoModal() ist eine weitere wichtige MFC Funktion, die Sie sich merken sollten. Mit DoModal() können Sie Ihre Dialogseiten auf den Bildschirm darstellen. Diese Funktion gehört eigentlich der MFC Klasse CDialog an. Da Sie jedoch CRechner von CDialog abgeleitet haben, steht Ihnen diese Funktion auch zur Verfügung.

Jetzt können Sie Ihr Programm laufen lassen. Wenn Sie auf dem Bildschirm mit der linken Maustaste klicken, wird die Dialogseite, die Sie entworfen hatten, erscheinen.

 

 

      Vorheriges Kapitel:  Grundlagen   Nächstes Kapitel:    Windows Standardsteuerelemente       Inhaltsverzeichnis Inhaltsverzeichnis       Die Downloadseite Download       Kontakt Kontakt