MFC: Globale Variable.

Stifthalter

Mitglied
Hi,

wie bzw. wo definiere ich denn eine Globale Variable auf die ich von jedem DialogFenster meiner Anwendung zugreifen kann???

mfg,
M.B.
 
Wenn Du das MFC Framework (Doc/View Architektur) verwendest, dann gibt es eine globale Variable vom Typ CWinApp. Wenn Du in dieser Klasse Deine globalen Variablen definierst, kannst Du von überall mit AfxGetApp() die globale Variable zugreifen.

Beispiel:
CMyApp myApp;

class CMyApp : CWinApp
{
public:
int m_gGlobal;
...
}

In der Dialogklasse kannst Du dann folgendermassen darauf zugreifen:
((CMyApp*) AfxGetApp())->m_gGlobal = 10;

Aber wobei ich sagen muss, solche Programmierung ist nicht "sauber"!
 
also meine Anwendung is Dialogfeldbasiert.

Das Problem is das ich von einem Dialog aus eine Variable eines Anderes dialogs ändern will.
Ich hab gedacht das geht so:

In der Header Datei vom ersten dialog, ich nenn ihn mal Dlg1, füg ich eine globale variable ein z.B.

Code:
class Dlg1: public CDialog
{
public:
	Dlg1(CWnd* pParent = NULL);	
	int m_global;

//...
}

wenn ich jetzt aus dem anderen Dialog, diesen nenn ich Dlg2, den ich mit DoModal aus dem ersten geöffnet hab darauf zugreifen will hab ich das so versucht:

Code:
CDlg1 Dlg1;
Dlg1.m_global = 50;

Aber irgendwie ändert sich die Variable nicht.
Da fehlt nochn Update oder sowas....

Mfg,
M.B.
 
Zurück