Dim FText#,256
Dim ClassText#,150 ( die Namen dieser beiden Bereichsvariablen sind frei wählbar. Die Größe muß ausreichend sein um die Texte aufnehmen zu können. Die vorgeschlagenen Werte sollten ausreichend sein). |
Def Hauptfenster(3) ! "Fenster.DLL","Hauptfenster"
Def Kindfenster(2) ! "Fenster.DLL","Kindfenster" Def DllInfo(0) ! "Fenster.DLL","Dll_Info" |
DLL& = UseDLL("Fenster.DLL") |
FreeDLL DLL& |
@DllInfo()
Diese Funktion zeigt nur Informationen über die Version an. |
Ret& = @Hauptfenster(%hWnd,FText#,ClassText#)
Diese Funktion ist einmal aufzurufen und zeigt die Informationen zum Hauptfenster und wieviele Kindfenster dazu vorhanden sind an. Vor dem Aufruf muß der Fenstertitel des Hauptfensters (bzw. der Teilstring mit dem der Fenstertitel beginnt) in die Bereichsvariable FText# übertragen worden sein. Die Funktion liefert als Ergebnis (in Ret&) die Anzahl der Kindfenster. Ist der Wert -1 wurde das Hauptfenster nicht gefunden (wurde das Programm mit diesem Fenster gestartet?). In den Stellen 1 - 4 von FText# steht, als LongInt, der Handle des Hauptfensters und ab Stelle 5 der volle Fenstertitel. In ClassText# steht ab Stelle 1 der Klassenname. |
Ret& = @Kindfenster(FText#,ClassText#)
Hier werden in einer Schleife die Informationen der Kindfenster abgefragt. Dabei kann der Wert in Ret& (als Ergebnis der Funktion @Hauptfenster) als Schleifenzähler benutzt werden. Ret& wird mit jedem Funktionsaufruf um 1 verringert. Erreicht Ret& den Wert 0 sind damit die Informationen des letzten Kindfensters erreicht worden. In den Stellen 1 - 4 von FText# steht, als LongInt, der Handle des Kindfensters und ab Stelle 5 der volle Fenstertitel. In ClassText# steht ab Stelle 1 der Klassenname. Der Fenstertitel eines Kindfensters kann auch leer sein. Daher ist eine Identifikation eines bestimmten Fensters oft nur über die Klasse möglich. Bei der Erstellung von Buttons, oder Text wird normalerweise ein Text angegeben. Dieser Text erscheint als Fenstertitel. Dagegen wird beim Erstellen von Edits oder Listboxen (z.B. @Create("Edit",N,S,X1,Y1,X2,Y2) für S oft "" statt eines Textes angegeben. Und in diesem Falle gibt es daher keinen Fenstertitel. |