Windows-Programmierung

Slides:



Advertisements
Ähnliche Präsentationen
Be.as WEB Technologie
Advertisements

Blue J.
Windows-Programmierung mit dem C++ Builder 3 von Borland
Microsoft® Office Excel® 2007-Schulung
Die Installation von Windows 95 erfordert etwas Vorarbeit: Als erstes müssen Sie mit einer Windows 95 Startdiskette den Computer booten.... Dabei wird.
Programmorganisation
Ultris Version 8: Erzeugen der Formen und Anzeigen der Vorschau
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung versteht Java Programmcode versteht Java Programmcode Für die Entwicklung eigener Software.
Anne Wolkenhauer-Ratzke - Powerpoint
Ausnahmen HS Merseburg (FH) WS 06/07.
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
Indirekte Adressierung
Java: Referenzen und Zeichenketten
Dateihandles Um in Perl eine bestimmte Datei zum Lesen, Schreiben oder Anhängen zu öffnen, benötigt man so genannte Dateihandles. Ein Dateihandle ist der.
Polymorphie (Vielgestaltigkeit)
Polymorphie (Vielgestaltigkeit)
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
Windows Explorer.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 6 Model-View-Controler als Grundlage für Nutzerschnittstellen Sommersemester 2003 Lars Bernard.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 5 Polymorphismus Sommersemester 2003 Lars Bernard.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Verkettete Liste Visualisierung. New-Operator Mit dem New-Operator kann zur Laufzeit (dynamisch) Speicherplatz reserviert und angelegt werden Vorteil:
PC Vorkurs, kompletter Foliensatz
Installationsanleitung 1.02 Hausverwaltung.
Excel Kurs Teil I Excel starten, Verknüpfungen auf dem Desktop anlegen. F. Bäumer.
Einführung in Visual C++
WINDOWS-Programmen Mit der Hilfe Microsoft Visual C++. Vortrag: Alexandra Werner 7. Und
DVG Klassen und Objekte
Briefkopfbogen anpassen
PHP Pakete und Beispiele Webengineering Robert Lemke.
PowerPoint Vorlagen erstellen, bearbeiten und verwalten
Delphi Eine objektorientierte Programmiersprache © Beushausen 2000.
Tipps und Tricks für Word 2000 Aytac, Felix, Steffen 04/05.
Kapitel 1 – Erste Schritte
Anlegen von Ordnern, speichern und Öffnen von Bildern und Briefen
Wie man eine einfache Präsentation erstellt...
Willkommen bei Sycarus – dem Mathematikprogramm, das neue Wege geht.
Steuerung externer Komponenten über ein USB-Interface.
Excel 97 Einführung - Start -.
Powerpoint 2010 Start Funker Panorama: Zuschauer auf der Elbbrücke beim Weinfest 2011 in Meißen.
Von der Planung bis zum Hauptmenü Seminar: Softwaretechnologie II Dozent: Prof. Manfred Thaller Referent: Jan Bigalke.
Windows Presentation Foundation WS 2013/14 Prof. Dr. Herrad Schmidt
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 1 Folie 2 Microsoft.NET Framework: Quelle:
1. Entwicklungsumgebung 2. Kontextmenü 3. Compile 4. Objekt 5. Attribut 6. Klasse 7. Deklaration 8. Intialisierung.
MMIX-Edit Felix Albrecht.
Anlegen von Ordnern, speichern und Öffnen von Bildern und Briefen
Wer macht was beim Einschalten des Rechners?
Bestandsmeldung erstellen Im Programm Powerpoint wird die Präsentation mit F5 gestartet und mit Esc beendet. Mit einem Klick der linken Maustaste oder.
Oliver Spritzendorfer Thomas Fekete
Java Programmierung.
Fensterelement am Beispiel von Word
Erste Schritte in DELPHI
Datei hochladen Um Mit der Dateiverwaltung zu beginnen klicken Sie zunächst auf den Wiki verwalten Button. Dann klicken Sie auf Dateien.
Programmieren ... in C++ Prof. Dr.-Ing. Franz-Josef Behr, HfT Stuttgart Programmeiren I.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Polymorphie (Vielgestaltigkeit). Wenn eine Methode, wie z.B. print für verschiedene Programmteile steht (und z.B. einmal Objekte verschiedener Klassen.
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
Institut für Kartographie und Geoinformation Prof. Dr. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G. Gröger Einführung in die Programmierung mit Java 13.
Datenaustausch Wenn Sie diese Präsentation im Internet-Explorer ablaufen lassen wollen, so klicken Sie bitte auf das Leinwandsymbol unten rechts. Mit.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Der Taskmanager ist Bestandteil des Betriebssystems, der als Prozessmanager Prozessmanager unter anderem die aktuell laufenden Programme und Prozesse.
Pointer. Grundsätzliches: Im Arbeitsspeicher werden Daten gespeichert. Um auf die Daten eindeutig zugreifen zu können, werden diesen Daten Adressen zugeordnet.
Einführung in Powerpoint XP Universität Leipzig Herder-Institut Video und Multimedia im Unterricht: DaF Dozent: Hr. Prof. Dr. E. Tschirner.
Tutorium Software-Engineering SS14 Florian Manghofer.
C++ FÜR cOMPUTERSPIELENTWICKLER
Objektorientierte Programmierung
 Präsentation transkript:

Windows-Programmierung Reihenfolge der Programmabarbeitung durch Reihenfolge der Prozeduren festgelegt Kommandozeilen-Programme verhalten sich prozedurorientiert Der Nutzer legt die Reihenfolge der Programmabarbeitung fest. Windows-Programme verhalten sich ereignisorientiert Windows-Programme teilen sich den Bildschirm den Speicher die Rechenzeit Sie bestehen aus Fenstern. C++ Prof. Dr. W. Voigt

Messages (Nachrichten) Konzeption der Nachrichten: Zu jedem Ereignis wird eine Nachricht erzeugt Das kann sein: Tastendruck, Mausbewegung, Menübefehl. Die Nachrichten werden in Warteschlangen gestellt. Aus den Warteschlangen werden die Nachrichten verteilt, weitergeleitet oder abgeholt (hängt vom Betriebssystem ab) Schlußfolgerung: Von Windows-Programmen sind Fenster und Nachrichten zu verwalten. C++ Prof. Dr. W. Voigt

Inhalt einer Nachricht Kennziffer (Handle) des Fensters, welches die Nachricht empfangen soll. typedef struct { HWND hwnd; UINT message; WPARAM wparam; LPARAM lparam; DWORD time; POINT pt; } meldung; Nummer der Nachricht Spezifizierung der Nachricht. Uhrzeit der Nachricht Mausposition zur Zeit der Erzeugung der Nachricht C++ Prof. Dr. W. Voigt

Inhalt einer Nachricht Gesendet bei einer Mausbewegung Einige Nachrichten: WM_MOUSEMOVE WM_LBUTTONDBLCLK WM_PAINT WM_DESTROY Gesendet bei Doppelklick mit der linken Maustaste Gesendet als Aufforderung zum Neuzeichnen des Fensters Gesendet zum Beenden des Programms C++ Prof. Dr. W. Voigt

Benötigte Funktionen Die „Hauptfunktion“ wird mit WinMain bezeichnet. Sie: füllt eine Fensterstruktur mit Attributen. registriert das Fenster bei Windows (Anmeldung) erschafft das Fenster und zeigt es erzeugt eine Nachrichtenschleife mit Übersetzung und Verteilung der Nachrichten WNDCLASS wc; RegisterClass(&wc); Hauptfenster = CreateWindow(... TranslateMessage(&meldung); DispatchMessage(&meldung); Diese Funktionen sind in einer Bibliothek enthalten. Sie werden API-Funktionen genannt (Application Programming Interface) Die Prototypen befinden sich in „windows.h“. Eine weitere Funktion „Fensterfunktion“ empfängt die Nachrichten von WinMain und wertet sie aus. Entsprechend dem Typ und Inhalt der Nachricht sorgt der Programmierer dafür, daß als Reaktion auf die Nachricht Aktionen erfolgen C++ Prof. Dr. W. Voigt

Beispiel „Zeichne“ Die wichtigsten Bestandteile des Programms wurden in den vorigen Folien angegeben Funktionalität: Bei Programmstart wird ein leeres Fenster mit weißem Hintergrund erzeugt. Mit der linken Maustaste kann im Fenster beliebig gemalt werden. Doppelklick mit der linken Maustaste beseitigt das Gemalte, der Hintergrund wird wieder weiß. Nachrichten Funktionen Kompletter Quelltext C++ Prof. Dr. W. Voigt

„Soeben hat es rechts geklickt!“ Übungsaufgabe 1 Erweitern Sie das Programm „Zeichne“ um folgende Funktionalität: Bei Klick mit der rechten Maustaste soll eine Dialogbox mit der Meldung „Soeben hat es rechts geklickt!“ erscheinen (In der Titelleiste soll stehen: „Meldung“). Bestimmen Sie die Syntax der Dialogbox unter dem Stichwort „MessageBox“ aus der Hilfe. Versuchen Sie intuitiv, den erforderlichen Namen der Nachricht herauszufinden. Färben Sie den Hintergrund grau (gray). Programm starten C++ Prof. Dr. W. Voigt

Ressourcen In einem extra Bereich des Programms werden Materialien gespeichert, auf die das Programm bei Bedarf zurückgreifen kann (Ressourcen). Das sind Menüs Dialogboxen Bitmaps Ikonen Tastenkombinationen für beschleunigten Zugriff Zeichenketten Versionsinformationen Diese Ressourcen werden bei der Programmierung in einer extra Datei verwaltet (Ressourcen-Datei .RC). Sie werden durch einen extra Compiler compiliert und erst beim Linken der EXE zugefügt. Aber: Die Einbindung von Ressourcen in klassischem Windows ist ziemlich ungemütlich, und wir wollen darauf verzichten. C++ Prof. Dr. W. Voigt

Experten und Zauberer ... ... erleichtern die Arbeit des Windows-Programmiers ungemein. Beherrschen muß er jetzt: C++-Programmierung Die mit der Entwicklungsumgebung mitgelieferten Klassenbibliotheken. Auch ohne Zauberer hat der Windows-Programmierer nicht jedes Programm von Anfang an neu geschrieben, sondern vorhandene Programmgerüste benutzt. Trotzdem war das Programmieren mühselig. Nun geht man davon aus, daß der Rahmen für ein Windows-Programm im wesentlichen immer der gleiche ist: Eine MDI-Anwendung (MDI - Multiple Document Interface). Eine SDI-Anwendung (SDI - Single Document Interface). Eine Dialogbox. Der Experte oder Zauberer erzeugt das lauffähige Basisprogramm. verwaltet neu hinzukommende Klassen. kümmert sich um die Verbindung zwischen Ressourcen und Programmcode. C++ Prof. Dr. W. Voigt

Vorgehensmodell: Programmieren in hoher Qualität Programmieren in C Keine Objektorientierung Objektorientiertes Programmieren Objektorientierte Modelle Windows-Programme in C Klassische Programmierung Klassenbibliothek, Etwa MFC Objektorientierte Windows- Programme mit MFC Objektorientierte Kommandozeilen- Programme mit MFC C++ Prof. Dr. W. Voigt

Hauptstruktur der Microsoft Foundation Classes CObject CCmdTarget CWinApp CDocTemplate CWnd CDocument CFrameWnd CView CDialog CMeineAnwendung CMeinProgramm CMeinView CMeinDokument Dazu kommt eine Menge weiterer Ableitungen sowie Klassen, die nicht im Hierarchiebaum eingeordnet sind. Unterhalb eigene Ableitungen C++ Prof. Dr. W. Voigt

Anwendung der MFCs Schlüsselkonzepte Herzstück des Programms ist ein "Anwendungsobjekt". Es verwaltet eine Liste von Dokumenten und verteilt Befehle an andere Objekte im Programm. Die Dateneinheit, mit der der Nutzer arbeitet, ist ein Dokument. Das Dokument erhält, speichert und lädt seine Daten selbst. Der Nutzer kommuniziert mit einem Dokument über einen View, eine Ansicht. Das ist ein Fenster in der Client Area eines Rahmens. Es zeigt die Daten des Dokumentes, nimmt Eingaben von Maus und Tastatur an, übersetzt sie in Markierung oder Bearbeitung. Objekte im Nutzerinterface wie Menüs und Schalter senden Befehle (Messages) an Dokumente, Views und andere Objekte. Diese Objekte führen die Befehle aus. C++ Prof. Dr. W. Voigt

Beziehung zwischen Dokument und View Speichert Daten in einem internen zwekcmäßigen Format Dokument Speichert Daten in einem internen zwekcmäßigen Format View Bring die Daten in eine optisch sinnvolle Form und antwortet auf Nutzereingaben C++ Prof. Dr. W. Voigt

Basisklasse CObject der MFC Benutzung: Programmierung ohne die Vorgaben durch den Anwendungsassistenten. Mittel: Definition eigener Klassen, die von CObject abgeleitet sind.   Die Klasse kann folgende Fähigkeiten vermitteln: ·   Fähigkeiten, Klassen dynamisch erst zur Laufzeit eines Programms zu erzeugen (wird z.B. benötigt bei Dateiarbeit). ·   Fähigkeit zum Laden und Speichern von Daten ·   Fähigkeiten zur Diagnostik für Objekte. Mitglieder Konstruktion Default constructor. Copy constructor. operator new operator delete operator = Diagnostik AssertValid (Überprüft die Integrität eines Objektes.) ·     Dump (Erzeugt einen Dump für ein Objekt.) Serialization IsSerializable (Prüft, ob ein Objekt gespeichert werden kann)      Serialize (Lädt oder speichert ein Objekt aus einem/in ein Archiv.)  Allgemeines GetRuntimeClass (Gibt ein RunTimeClass-Struktur zurück, die mit der Objektklasse korrespondiert.) IsKindOf (Prüft die Beziehung eines Objektes zu einer gegebenen Klasse. ) C++ Prof. Dr. W. Voigt

Experten und Zauberer 2 Zauberer werden von Visual C++ (Microsoft) benutzt: Application Wizard - zaubert eine neue Anwendung Class Wizard - verwaltet Klassen und verbindet Ressourcen mit Klassen. Experten werden von Borland C++ (Borland Corp.) benutzt: Application Expert - erzeugt eine neue Anwendung Class Expert - verwaltet Klassen und verbindet Ressourcen mit Klassen. C++ Prof. Dr. W. Voigt