Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Windows-Programmierung

Ähnliche Präsentationen


Präsentation zum Thema: "Windows-Programmierung"—  Präsentation transkript:

1 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

2 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

3 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

4 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

5 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

6 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

7 „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

8 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

9 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

10 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

11 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

12 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

13 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

14 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

15 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


Herunterladen ppt "Windows-Programmierung"

Ähnliche Präsentationen


Google-Anzeigen