Updaten eines modalen Dialogs



  • Habe in einem Dialog ein Eingabefeld und ein Button. Wenn der Dialog geöffnet wird wird in den Eingabefeld eine Zahl reingeschrieben. Nun kann man auf einen Button dieses Dialogs klicken, und diese Zahl wird um eins erhöht. Nun soll der Dialog nicht geschlossen werden, sondern direkt diese neue Zahl im Eingabefeld anzeigen. Aktualisiern/Updaten.

    void CMetMiDlg::OnMetMi() 
    {
    
    	char text[100];
    	m_pDoc->Met++;
    
    	sprintf(text, "%d", m_pDoc->Met);
    
             CMetMiDlg mDlg;
    	mDlg.m_MetStufe = text;
    
    	//update?
    
    }
    

    Finde dazu keine richtige Hilfe in den FAQ`s oder sonstwo.

    Danke schonmal im V o r r a u s



  • Schau dir in der MSDN mal UpdateData an. 🙂



  • void CMetMiDlg::OnMetMi() 
    {
    
    	char text[100];
    	m_pDoc->Met++;
    	CMetMiDlg mDlg;
    	sprintf(text, "%d", m_pDoc->Met);
    
    	UpdateData(true);
    	mDlg.m_MetStufe = text;
    	UpdateData(false);
    
    }
    

    ??

    Macht der irgendwie nicht, obwohl er keinen Fehler anzeigt.



  • Lass einfach mal die Zeile "CMetMiDlg mDlg;" weg (und das "mDlg." in der vorletzten Zeile) - du bist doch schon in einem CMetMiDlg-Objekt, da brauchst du kein weiteres erstellen.



  • Ach, du hast da ja nen anderen Dialog in dem du rumbasteln willst. 🙄
    Nein, das klappt so nicht.

    Du kannst nicht eine Variable nochmal lokal anlegen und dann glauben, das beeinflusst eine andere Instanz.
    Das ist ungefähr sowas, wie ich da mal beschrieben habe: http://www.c-plusplus.net/forum/viewtopic-var-t-is-103523.html 🙂

    Nur, dass du hier kein new machst sondern einfach eine normale Instanz erzeugst.

    CAuto meinz;
    

    statt

    CAuto* pMeinz = new CAuto;
    

    Okay? 🙂

    Siehst du nun die "Falle" in deinem Code?
    PS: CStoll hat sie schon gesagt.



  • Danke!

    Ich liebe dieses Forum!


Anmelden zum Antworten