REFERAT-MenüDeutschGeographieGeschichteChemieBiographienElektronik
 EnglischEpochenFranzösischBiologieInformatikItalienisch
 KunstLateinLiteraturMathematikMusikPhilosophie
 PhysikPolitikPsychologieRechtSonstigeSpanisch
 SportTechnikWirtschaftWirtschaftskunde  



Grundsätze der Windows Programmierung



Grundsätze der Windows Programmierung

  1. Ablauf von Programmen
  • zustandsgesteuerter Ablauf

  • ereignisgesteuerte Ablauf

  1. Multitasking
  • preemptives Multitasking

  • nonpreemptives Multitasking

  1. Grundbegriffe
  • Programminstanzen

  • Handles

  • GDI

  • Meldungen

  • Ressourcen



  • Dialoge

  1. Zusammenfassung

 

 

Ablauf von Programmen

Zustandsgesteuerter Ablauf: herkömmliche Programme Bei herkömmlichen Programmen werden die Funktionen sequentiell abgearbeitet und vom Programm gesteuert.

 

Start

Eingabe-Maske 1

Eingabe-Maske 2

Ergebnisse

ausgeben

Stop

Vorteil:

  • einfach zu programmieren

Nachteil:

Ereignisgesteuerter Ablauf: Windows-Programme

Bei Windows-Programmen werden die Funktionen vom Benutzer gesteuert, d.h. meldungsorientiert abgearbeitet.

 

Start

 

Eingabe-Maske 1

 

Ende?

Hole nächstes Ereignis

 

 

 

Stop

Interpretiere Ereignis

Eingabe-Maske 2

 

Ja

Ergebnisse ausgeben

 

Nein

 

 

 

Vorteil:

  • Ablauf durch Benutzer beeinflußbar

  • flexibel

  • gut für nonpreemptives Multitasking geeignet

  • beliebige Reihenfolge der Verarbeitungsschritte

Nachteil:

  • aufwendige Programmierung -- neigt zum "Chaos"

 


Multitasking

Preemptives Multitasking Bei dieser Art von Multitasking unterbricht das Betriebssystem den laufenden Prozeß "von außen" bevor er beendet ist, um auf andere Prozesse zu wechseln. Das Programm muß sich daher nicht selbst kümmern, wann und wie diese Unterbrechungen erfolgen.

Nonpreemptives Multitasking Windows 3.x verwendet ausschließlich diese Art von Multitasking:
Ein Prozeß wird nicht von außen unterbrochen, bevor er nicht beendet ist. Das Programm muß sich also selbst darum kümmern, daß auch andere Programme ausgeführt werden. Diese periodische Rückgabe der Steuerung erfolgt durch den Aufruf einer Betriebssystem-Funktion. Nonpreemptives Multitasking wird auch "meldungsgetriebenes" Multitasking genannt.

 

Grundbegriffe

Programminstanzen Da Windows-Programme grundsätzlich mehrfach parallel ausführbar sind wird eine Ausführung des Programms Instanz genannt.
Der Programmcode und die Ressourcen werden von den Instanzen gemeinsam genutzt, und beim ersten Aufruf in den Speicher geladen. Der Datenbereich steht natürlich jeder Instanz separat zur Verfügung.

Handles Der Zugriff auf "Windows-Objekte" (Fenster, Instanzen, Menüs, ...) erfolgt durch die Verwendung von Handles, die die Identifikation ermöglichen. Diese "Bezüge" sind durch vorzeichenlose 16-Bit Zahlen realisiert.

GDI - Graphics Device Interface Das GDI stellt eine Bibliothek von Routinen dar und wird sowohl von Windows selbst als auch von Applikation zur geräteunabhängigen Grafik- und Textausgabe verwendet.

Dabei stehen vier Einheiten zu Verfügung:

  • Bildschirme

  • Hardcopy-Geräte

  • Bitmaps

  • Meta-Dateien

Eine Device-Context (DC) stellt die Verbindung zu einer bestimmten Einheit (Zeichenoberfläche) her und stellt einen "Werkzeugkasten" mit logischen Werkzeugen wie Pinsel, Stifte, Schriftarten, etc. zur Verfügung.

DC anfordern
BeginPaint, Get DC
DC zurückgeben
EndPaint, ReleaseDC
vorh. Objekt ermitteln
GetStockObject
neues Objekt erstellen
CreatePen, CreateFont, ...
Objekt in DC aufnehmen
SelectObject
Objekt aus DC löschen
DeleteObject

Meldungen



Meldungen informieren über alle Ereignisse (Mausaktionen, Tastenanschläge, Ablauf eines Zeitintervalls) und bestehen aus einer vorzeichenlosen 16-Bit Zahl. Für Zusatzinformationen gibt es die Parameter WPARAM (16 Bit) und LPARAM (32 Bit).

Windows verwendet 2 Übergabe-Mechanismen:

  • "PULL-Model": Übergabe bei GetMessage, Applikation ist aktiv, MSG-Struktur

  • "PUSH-Model": Aufruf einer Fensterfunktion durch Windows, Applikation ist passiv, Meldung in Form einzelner Parameter

Erzeugen von Meldungen:

  • PostMessage: Stellt Meldung ans Ende der Warteschlange

  • SendMessage: Ruft entsprechende Fensterfunkt. direkt auf

Die nächste Abbildung zeigt den Meldungsfluß zwischen Windows und den einzelnen Applikationen.

 


Applikation B

Applikation A

Meldungs-schleife

 

Meldungs-schleife

 

Fenster-funktion B

Fenster-funktion B2

DispatchMessage

Maustreiber

Tastaturtreiber

Timer-Interrupts

Fenster-funktion A2

 

Fenster-funktion A

Applikations-Nachrichten-Warteschlangen

System-Nachrichten-Warteschlangen


 

Ressourcen

Ressourcen sind read-only Dateien, die hauptsächlich für die Gestaltung der Benutzeroberfläche verwendet werden. Diese Daten werden unabhängig vom Programm erstellt und verwaltet und später im Objektcode des Programms gelinkt. Eine eventuelle Änderung der Ressourcen (zB Übersetzung der Texte in einer andere Sprache) kann daher ohne Änderung des Programmcodes geschehen.

Ressource Typen:

  • Menüs

  • Dialoge

  • Accelerators

  • Cursor

  • Icons

  • Bitmaps

  • Stings

  • Schriften

 

Dialoge

Dialoge sind standardisierte Methoden zum Einlesen von Informationen vom Benutzer und werden als Ressourcen abgespeichert. Ein Dialog ist eine spezielle Fensterart mit untergeordneten Fenstern (Kontrollelemente).

Die wichtigsten Kontrollelemente sind:

  • Textfelder zur Texteingabe

  • Buttons zum Auslösen vers. Aktionen

  • Listboxen, Comboboxen zur Auswahl von Einträgen

  • Text und Symbole zur Anzeige von Informationen

Man unterscheidet zwei verschiedene Dialogarten:

Modaler Dialog

Ein modaler Dialog muß vor dem Weiterarbeiten mit der Applikation geschlossen werden. Das Elternfenster wird vollkommen deaktiviert, die Steuerung wird an die Funktion Dialogbox übergeben, welche eine eigene Meldungsschleife enthält. Die Rückkehr zum Elternfenster erfolgt mit dem Aufruf der Funktion EndDialog.

  • system-modal: gesamtes Windows ist lahmgelegt

  • applikations-modal: nur die eigene Applikation wird "deaktiviert", man kann also zu anderen Applikationen wechseln

Nicht-modaler Dialog

Beim nicht-modalen Dialog kann der Benutzer zwischen Dialog und dem Rest der Applikation wechseln. Ein nicht-modaler Dialog wird mit dem Aufruf der Funktion CreateDialog erstellt, die Kontrolle bleibt aber beim Elternfenster. Da es keine Dialog-Meldungsschleife gibt, muß die Meldungsschleife in WinMain modifiziert werden.

 










Haupt | Fügen Sie Referat | Kontakt | Impressum | Nutzungsbedingungen







Neu artikel