Computer & Technik

Betriebssysteme

Windows

WinMain

In WinMain werden üblicherweise zwei Aufgaben erledigt, bevor die bereits besprochene Hauptschleife aktiv wird:

1. Installieren der Anwendung
2. Anlegen des oder der Hauptfenster

Bei der Installation ist zwischen der ersten Programmkopie und je­der weiteren zu unterscheiden. WINDOWS ordnet jedes Programm einer Fensterklasse zu, die dem System bekannt sein muß. Folglich muß jede Fensterklasse einmal registriert werden. Dies erledigt immer die erste Programmkopie. Werden später weitere Kopien des selben Programms gestartet, ist die Fenster­klasse bereits bekannt und die Registrierung ist überflüssig (und auch unmöglich). WIN­DOWS stellt jeweils beim Programmstart die Nummer der letzten In­stanz zur Ver­fügung. (Mit Instanz wird jeweils eine Programmkopie be­zeichnet.)

TPWin stellt die Instanz über HPrevInst (Unit SYSTEM) bereit. Ist der Wert 0, handelt es sich um die erste Instanz und die Fenster­klasse muß registriert werden. Dazu dient ein Record vom Typ TWndClass:

TYPE
  TWndClass = RECORD
    style         : WORD;
    lpfnWndProc   : TFarProc;
    cbClsExtra    : INTEGER;
    cbWndExtra    : INTEGER;
    hInstance     : THandle;
    hIcon         : HIcon;
    hCursor       : HCursor;
    hbrBackGround : HBrush;
    lpszMenuName  : PChar;
    lpszClassName : PChar;
  END;

An diesen Datentyp sind im Moment nur drei Elemente interessant:

1. lpfnWndProc
2. lpszMenuName
3. lpszClassName

 

lpfnWndProc zeigt auf eine Funktion, an die WINDOWS alle Meldun­gen sendet, die für dieses Fenster bestimmt sind. Diese Funktion muß einen LongInt zurückliefern und zusätzlich als EXPORT deklariert wer­den.

In lpszMenuName wird der Name übergeben, der in der Ressourcen-Da­tei zur Definition des Menüs verwendet wurde. In der Regel stimmt dieser Name mit dem Namen der Applikation überein. Dies muß jedoch nicht sein, wie auch unser Beispielprogramm ASCII zeigt.

In lpszClassName wird der Name der Fensterklasse übergeben. Dieser muß eindeutig sein und stimmt daher in der Re­gel mit dem Namen der Applikation überein.

Die restliche Werte der Struktur können auf 0 gesetzt werden.

Diese Vorbelegung kann am besten per Konstante erfolgen, wie dies im Programm ASCII erfolgt ist.

Anschließend können wei­tere Initialisierungen erfolgen. ASCII setzt beispielsweise:

- Applikatonseigenen ICON
- Standard-Cursor
- Hintergrund = weiß.





Sachgebiet


© 2009-2012 by Alojado Publishing. Alle Rechte vorbehalten. Ausgewiesene Marken gehören ihren jeweiligen Eigentümern.
Mit der Benutzung dieser Seite erkennen Sie die Nutzungsbedingungen und die Datenschutzerklärung an. Der Betreiber übernimmt keine Haftung für den Inhalt verlinkter externer Internetseiten.
Seite erzeugt 2012-05-22 08:22:14 von textarchiv.alojado.de