MFC: Globale Variablen o.Ä.



  • Guten Morgen,

    ich schreibe an einer Dialogbox in der andere Dialogboxen mit TabControl eingebunden sind. Funktioniert alles wunderbar.

    Problem ist, wenn ich in einer Dialogbox eine membervariable definiert habe, kann ich außerhalb dieser Dialogbox nicht mehr darauf zugreifen, zum Beispiel wenn ich einen Button mit OnButton anweisen will. Die Variablen sind mit EditBoxen verknüpft.

    Klasse heisst zum Beispiel CSeite2 und die variable m_eins.

    CSeite2.m_eins
    

    funktioniert nicht

    CView          *pView = ((CFrameWnd *)AfxGetMainWnd())->GetActiveView();
    	CSeite2 *pDoc  = NULL;
    
    	if( pView )
    	{
    		pDoc = (CSeite2 *)pView->GetDocument();
    	}    
    
    	if( pDoc )
    	{
    		pDoc->m_eins=1;
    	}
    

    funktioniert nicht

    Hat jemand eine Idee?

    AndyC

    Edit1:
    Die Variablen sind alle public



  • Okay, ich habs durch verzweifeltes ausprobieren hinbekommen.
    Nämlich einfach in die Hauptklasse eingebunden und dann mit "extern" in die jeweilige andere Klasse eingebunden.

    Nun habe ich aber ein zweites Problem.

    Wie kann ich meine EditBoxen mit dne globalen Variablen verbinden?

    AndyC



  • Wozu brauchst du überhaupt globale Variablen? Die sind böse und sollten nur in absoluten Notfällen verwendet werden.

    Ansonsten: Du hast doch deine Dialog-Klasse - und irgendwo beim Programmstart hast du auch ein Objekt dieser Klasse angelegt und mit DoModal() oder Create() gestartet. Dieses Objekt kannst du jetzt an jeden übergeben, der mit deinen Dialog-Daten arbeiten will.



  • Getter unf Setter sind immer die beste loesung, lieber schnittstellen verwaten als globale variablen die man dann noch pruefen muesste



  • Ich hab jetzt einfach meine alten Variablen mit

    ((CKlasse2 *)m_TabControl.m_DialogBox2->m_Variable
    

    eingebunden.

    Funktioniert gut, und keine globalen variablen mehr 🙂

    Thx trotzdem

    Grüße
    Andy


Anmelden zum Antworten