180 likes | 276 Views
WINDOWS-Programmen. Mit der Hilfe Microsoft Visual C++ . Vortrag: Alexandra Werner 7. Und 14.5.2002. Vorwort Erstellung eines Arbeitsbereiches Erstellung von Projekts Erstellung von Standardklassen Projekt im Übersicht Übersetzen, Ausführen Unseres Windows-Programmchen
E N D
WINDOWS-Programmen Mit der Hilfe Microsoft Visual C++. Vortrag: Alexandra Werner 7. Und 14.5.2002
Vorwort • Erstellung eines Arbeitsbereiches • Erstellung von Projekts • Erstellung von Standardklassen • Projekt im Übersicht • Übersetzen, Ausführen • Unseres Windows-Programmchen • Mängel unseres Programms
Vorwort • Entwicklungsumgebungen
Vorwort • Grundlegende Programmtypen • MDI-application = multiple data interface application • SDI- application = single data interface application • dialog based application
Erstellung eines Arbeitsbereiches • Das VISUAL C++ aufrufen DateiNeu • Registerkarte „Arbeitsbereiche“ • Name für den Arbeitsbereich angeben • Mit OK bestätigen
Erstellung von Projekts • DateiNeu • Registerkarte „Projekte“ • MFC-Anwendungs-Assistent(exe) • Hinzufügen zu akt.Arbeitsbereich • Name des Projekts angeben • Mit OK bestätigen
Erstellung von Standardklassen • Art der Anwendung Dialogfeldbasierend • Den 2. und 3. Schritte unverändert lassen Weiter • Den 4. Schritt zur Kenntnis nehmen Fertigstellen • Mit OK bestätigen
Projekt im Übersicht • Klassen • Ressourcen • Dateien
Übersetzen, Ausführen • Übersetzen : Erstellen Flaeche.exe erstellen (F7) • Ausführen : Erstellen Ausführen von Flaeche.exe (Strg+F5)
Unseres Programmchen • So möchten wir unseres Programm sehen
Routinen mit Anweisungen füllen void CFlaecheDlg::OnOK() { // CDialog::OnOK(); } void CFlaecheDlg::OnBeenden() { CDialog::OnOK(); } void CFlaecheDlg::OnBerechnen() { double Flaeche; CString help; Flaeche = m_dBreite * m_dLaenge; help.Format("%4.2f", Flaeche); SetDlgItemText (IDC_FLAECHE, help); }
Routinen mit Anweisungen füllen void CFlaecheDlg::OnKillfocusBreite() { GetDlgItemText (IDC_BREITE , m_strBreite); m_dBreite = atof(m_strBreite); m_dBreite = ((long int)(100.0 * m_dBreite))/100.0; m_strBreite.Format("%4.2f", m_dBreite); SetDlgItemText (IDC_BREITE, m_strBreite); } void CFlaecheDlg::OnKillfocusLaenge() { GetDlgItemText (IDC_LAENGE , m_strLaenge); m_dLaenge = atof(m_strLaenge); m_dLaenge = ((long int)(100.0 * m_dLaenge))/100.0; m_strLaenge.Format("%4.2f", m_dLaenge); SetDlgItemText (IDC_LAENGE, m_strLaenge); }
Mängel unseres Programms • Am Anfang eines Programmlaufs ist der Cursor nicht zusehen.. • Beendet man eine Eingabe aus Versehen mit <Return> , so endet das Programm, obwohl wir doch in der Routine CFlaecheDlg::OnOK diejenige Anweisung, die das Fenster schließt, extra zum Kommentar gemacht hatten. • Mit Hilfe der Maus kann man auf die Eingabefelder zugreifen, Daten eingeben und die Fläche berechnen lassen. Danach kann man jedoch die Daten in den Eingabefeldern wieder ändern und erhält völlig falsche Zusammenhänge Obwohl am Anfang keine Daten in den Feldern stehen, kann man den "Berechnung durchführen"-Button anklicken. • Der Maximize-Button ist hier sinnlos.Wir haben die einzelnen Elemente noch nicht sauber ausgerichtet.
Verbesserungen • Skript von Prof.Stephan: Einführung in MS VISUAL C++ (MFC) www.tfh-berlin.de/~stephan