MFC: Datenaustausch zwischen zwei Dialogfenstern

Dieses Thema MFC: Datenaustausch zwischen zwei Dialogfenstern im Forum "Windows XP Forum" wurde erstellt von keksko, 30. Apr. 2006.

Thema: MFC: Datenaustausch zwischen zwei Dialogfenstern Ich hab eine dialogbasierende anwendung erstellt und hab in den Header- und Source-Dateien des Dialogs CDialog durch...

  1. Ich hab eine dialogbasierende anwendung erstellt und hab in den Header- und Source-Dateien des Dialogs CDialog durch CPropertySheet ersetzt.
    Und hab Klassen, von CPropertyPage abgeleitet, ersteltt für jedes Dialogfeld und
    dort Membervariablen zugewiesen z.B. CWelcome,CPruef oder CNoten. Das PropertySheet wird im Wizard-Modus verwendet. So wie das Dings http://www.wintotal-forum.de/index.php/topic,107557.0.html <-hier beschrieben hat

    dlg.h
    Code:
    class CAbirechnerDlg : public CPropertySheet								//CDialog ersetzt duech CPropertySheet
    {
    // Konstruktion
    public:
    	CAbirechnerDlg(CWnd* pParent = NULL);	// Standard-Konstruktor
    	//Konstruktion von Objekten der PropertyPages//
    	CWelcome page1;
    	CPruef page2;
    	CNoten page3;
    
    dlg.cpp
    Code:
    CAbirechnerDlg::CAbirechnerDlg(CWnd* pParent /*=NULL*/)
    	: CPropertySheet()	//Parameter der Elternklassen-Initialisierung geändert(CDialog->CPropertySheet())
    {
    	//{{AFX_DATA_INIT(CAbirechnerDlg)
    		// HINWEIS: Der Klassenassistent fügt hier Member-Initialisierung ein
    	//}}AFX_DATA_INIT
    	// Beachten Sie, dass LoadIcon unter Win32 keinen nachfolgenden DestroyIcon-Aufruf benötigt
    	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
      AddPage(&page1);
    	AddPage(&page2);
    	AddPage(&page3);
    	AddPage(&page4);
    	AddPage(&page5);
    	AddPage(&page6);
    	SetWizardMode();
    }
    Das Sind halt 6Seiten die man mit weiter durchschalten kann.
    wenn ich auf der 1. Seite(CWelcome) etwas eintrage, soll das auf der 2. Seite angezeigt werden(CPruef).

    Wie kann ich jetzt Daten von der 1.Seite auf der 2.Seite einfügen?
     
  2. Siehe hier:

    http://www.wintotal-forum.de/index.php/topic,112973.0.html

    Da Du die PropertyPages nicht dynamisch erzeugst, müsstest Du den Weg einer Extra-Methode in der Klasse der ersten Seite wählen. Dieser übergibst Du dann einen Zeiger auf die 2. PropertyPage. Weiter wie im anderen Beispiel.
    Oder Du erzeugst die Seiten eben dynamisch mit new und erweiterst den Konstruktor Deiner Seiten (bzw. schreibst einen zusätzlichen).

    Falls Du mehreren Seiten (oder gar allen anderen Seiten) von einer Seite aus etwas übergeben willst, kannst Du besser eine Methode in Deiner PropertySheet-Klasse implementieren, die von der entsprechenden Seite aufgerufen wird und dann mehrere (oder alle) anderen PropertyPages aufruft. Also eine Art Nachrichtenverteiler. Du kannst in der PropertyPage das Elternfenster abfragen, auf CAbirechnerDlg casten und dann diese Verteiler-Methode aufrufen. Alles nach dem gleiche Prinzip wie vorher bei PropertyPage -> PropertyPage, nur dass Du Dir das Bekanntmachen der Adresse des Zielobjektes sparen kannst, da sie der Adresse des Elternfensters (PropertySheet) entspricht.
    Die PropertySheet-Klasse selbst kennt ja alle Seiten, da kannst Du Methoden der PropertyPages direkt aufrufen.

    Man könnte bei PropertyPage -> PropertyPage bzw. PropertyPage -> PropertySheet -> PropertyPage(s) auch direkt auf die Member-Variablen zugreifen anstatt Methoden zu schreiben, aber das wäre eine sehr unsaubere Lösung.
     
Die Seite wird geladen...

MFC: Datenaustausch zwischen zwei Dialogfenstern - Ähnliche Themen

Forum Datum
Hilfe beim Datenaustausch zwischen Netbook( Win 7 ), Notebook( Vista) und PC ( win 7) Windows 7 Forum 4. Jan. 2010
Datenaustausch zwischen Outlook 2002 und Outlook Express Microsoft Office Suite 19. Feb. 2005
Office 2010: Datenaustausch (Serienbrief) funktioniert nicht mehr... Windows XP Forum 9. Aug. 2013
WIN 7 und WIN XP Datenaustausch Netzwerk 24. Feb. 2010
Online Datenaustausch Windows XP Forum 12. Okt. 2009