Ein Wert in CMyDialog in CMyDocument benutzen



  • Hallo leute,
    Ich habe eine CMyDoc klasse und eine CMyDialog klasse.
    Ich habe berechne einen Wert in CMyDialog und diesen Wert möchte ich in CMyDoc klasse benutzen. Wie kann ich vom CMyDoc auf CMyDialog zugreifen und den Wert in CMyDoc benutzen..

    Danke für die Hilfe



  • Hallo leute,
    Ich habe eine CMyDoc klasse und eine CMyDialog klasse.
    Ich berechne einen Wert in CMyDialog und diesen Wert möchte ich in CMyDoc klasse benutzen. Wie kann ich vom CMyDoc auf CMyDialog zugreifen und den Wert in CMyDoc benutzen..

    Danke für die Hilfe



  • Ganz einfach: du erweiterst den Konstruktor deiner Dialogklasse um einen Zeiger auf dein Dokument und übergibst bei der Konstruktion des Dialogs den Zeiger:

    CMyDialog::CMyDialog(CMyDoc* pDoc, CWnd* pParent /*=NULL*/)
    	: CDialog(CMyDialog::IDD, pParent)
    {
    	m_pDoc=pDoc; //Membervariable vom Typ CMyDoc* anlegen
    }
    ...
    
    //der Aufruf auf der Dokumentenklasse könnte so aussehen
    
    CMyDialog Dialog(this);
    Dialog.DoModal();
    
    //Jetzt sind Zugriffe auf public-Elemente über m_pDoc möglich
    

  • Mod

    Ich würde nicht dem CDialog den Zeiger auf CDocument geben.
    Warum muss der Dialog "alles" über das CDocument wissen.

    Besser nur die Teile übergeben, die geändert werden sollen.
    Bei IDOK dann die Daten zurückspeichern.



  • Martin Richter schrieb:

    Ich würde nicht dem CDialog den Zeiger auf CDocument geben.
    Warum muss der Dialog "alles" über das CDocument wissen.

    Besser nur die Teile übergeben, die geändert werden sollen.
    Bei IDOK dann die Daten zurückspeichern.

    Welche Vorgehensweise schlägst du vor? Ich hab das bisher imer so gemacht. Hab der Doc-Klasse Set- und Get-Methoden verpasst und den Rest private gelassen. Wie soll man Teile übergeben?


Anmelden zum Antworten