Globales bekanntmachen einer eigenen Klasse bei dialogfeldbasierender Anwendung

jotto

Grünschnabel
ich hoffe mal, dass mir hier jemand helfen kann, denn ich probiere und suche und finde nichts, obwohl das nicht so schwer sein kann.
folgendes allgemeingehaltenes problem:

wenn ich eine eigene klasse erstellt habe und darauf in meiner *dlg zugreifen will, um sie mit daten zu füllen, hab ich das bisher so gemacht, dass ich ein objekt dieser klasse als membervariable der *dlg zugefügt habe. ich möchte nun aber, dass das objekt überall verfügbar ist. das Initialisieren der klasseninternen member (meiner eigenen klasse) geht über den Konstruktor leider nicht, denn wenn ich davon ein objekt im header anlege bzw. deklariere kann ich den konstruktor nicht überladen. sieht dann nicht mehr wie eine variable aus sonder wie eine funktion.

wenn ich dagegen mein objekt der eigenen klassen in der Initinstance anlege, ist sie nirgends bekannt, aber ich kann in der funktion (initinstance) den konstruktor überladen und die member intialisieren.

zu allem überfluss möchte ich meinem Objekt (meiner klasse) noch die Pointer auf die Buttons und steuerelement aus dem dialog übergeben, damit ich eine änderung auch immer mitbekomme( wenn das möglich ist).

klingt vielleicht verwirrend aber wenn einer irgendeine idee dazu hat, egal wie klein sie ist, bitte mal was posten.
mfg Jotto
 
Da behelfe ich mir meistens so, dass ich die gewünschte Klasse als Member der CWinApp-Klasse einsetze. In die MyApp.h schreibe ich dann ausserhalb der Klassendeklaration extern CMyApp theApp; In MFC ist ja immer in der MyApp.cpp ein Objekt meiner App-Klasse mit Namen theApp deklariert.
Dadurch habe ich eigentlich von überall über theApp.xxx Zugriff auf die Members.

Eine andere Möglichkeit wäre ein Singleton zu verwenden, aber das ist dasselbe in Grün (und rosa OOP-Herzchen).
 
ja, besten dank, das scheint mir eine gute möglichkeit zu sein. werde ich dann heute mal gleich antesten.
schönes we wünsche ich!
mfg
 
Zurück