Problem beim Design meiner Klassen
-
Ich habe ein Fenster mit mehreren Childwindows. Jetzt möchte ich eine Klasse WindowManager haben, die für die Positionierung, sowie die Größeneinteilung der Childwindows verantwortlich ist. Die Childwindows sollen ebenfalls in Klassen verpackt sein und werden in einer Liste in der Klasse WindowManager gespeichert. Die Childwindows sollen sich aber nicht selbst in der Größe verändern, sondern das soll der WindowManager machen, weil er dann evtl. andere Childwindows verschieben oder kleiner machen muss, wenn ein anderes Größer sein will.
Aber wie soll ChildWindow dem WindowManager mitteilen, dass es die Größe ändern will? Irgendwie müsste ja ChildWindow eine Methode der Klasse WindowManager aufrufen.Scheinbar muss ich das irgendwie ganz anders machen.
Bin für jede Hilfe dankbar.
-
Die Größe der Childwindows soll sich doch nur ändern wenn sich auch die Größe des Parents ändert, oder?
Dann machst du im Parent:
case WM_SIZE:
windowmanager.childfensterpositionieren();
-
Nein, die Childwindows müssen je nach Inhalt ihre Größe ändern. Das Childwindow soll dann dem Manager sagen ich will so und so groß sein und der Manager guckt was er machen kann.
-
Kann ich vieleicht in die Klasse ChildWindow einen Zeiger auf ne Methode in WindowManager speichern?
-
D@niel $chumann schrieb:
Kann ich vieleicht in die Klasse ChildWindow einen Zeiger auf ne Methode in WindowManager speichern?
Logisch.
ChildWindow ist ja quasi ein Kind von WindowManager - und Kinder haben ja sehr oft einen Zeiger auf die Eltern.