Kommunikation zwischen Fenstern
-
Hi Folks.
Annahme:
Win32-Anwendung mit mehreren Fenstern (eigene Fensterklasse). Die Fensterklassen haben ihre eigenen Meldungshanlder (mittels GWL_USERDATA und GetWindowLong aus der globalen WndProc aufgerufen).
Alle Fenster werden in WinMain instanziiert (Wissen also erst mal nichts voneinander).Frage:
Wie kommuniziert man am elegantesten (Performance spielt eine Rolle!) unter den Fenstern? Muss man allen Instanzen die anderen Instanzen bekannt machen (z.B. über Pointer auf das jeweilge Fenster, oder gibt es einen besseren Weg?
Über die WinMain in der Hauptschleife Stati abzufragen und beim Wechsel die entsprechende Funktion der entsprechenden Fensterklasse aufzurufen scheint mir unelegant, oder?Übrigens:
Ist ja auch unter .NET ein Problem. Zwei Fenster (keines davon ist Hauptfenster). Aus dem einen Fenster eine Funktion des anderen aufrufen ist ja ziemlich "dirty" (bzw. kann zu Problemen führen).
Vielen Dank.
-
was willst du denn kommunizieren ¯\(º_o)/¯
-
Alle möglichen Dinge.
Simples Beispiel:
User drückt Button auf Fenster1 --> Fenster2 Hintergrund wird blau.
User drückt Button auf Fenster2 --> Fenster2 Hintergrund wird rot und Fenster3
wird geschlossen.
-
SendMessage ¯\(º_o)/¯
-
Ok, aber dazu muss ja das sendende Fenster das Handle des Fensters kennen, dem es die Meldung sendet.
Das also bekannt machen oder macht man es anders?
-
das hängt mit deiner projektplanung zusammen. du musst es so machen, dass die fenster die handles ihrer anderen fenster kennen.