Funktionsaufruf



  • Hi!
    Und zwar rufe ich eine Funktion auf die eine Zahl umwandelt und wieder hinschreibt. Dann soll mit dieser Zahl nach dem sie umgewandelt wurde gerechnet werden. Nur leider kann der Wert nicht gelesen werden, obwohl doch die Methode "OnKillfocusAussenradius" den Wert deklariert und ausgibt. Wie kann ich da am besten vorgehen? Danke schon mal. 🙂

    void CVolumenDlg::OnKillfocusAussenradius() 
    {
    	CString str_aussenradius;
    	GetDlgItemText (IDC_AUSSENRADIUS,str_aussenradius);
    
    	double aussenradius = fabs(atof (str_aussenradius));
    	aussenradius =0.01*floor(aussenradius*100);
    	str_aussenradius.Format("%.2f",aussenradius);
    
    	SetDlgItemText (IDC_AUSSENRADIUS,str_aussenradius);
    }
    
    void CVolumenDlg::OnBnClickedVolumenBerechnen()
    {
    	OnKillfocusAussenradius();
    
    	CString str_aussenradius;
    	CString str_volumen;
    
    double aussenradius = atof (str_aussenradius);
    	double volumen;
    
    	GetDlgItemText (IDC_AUSSENRADIUS,str_aussenradius);
    
    	volumen =  aussenradius;
    
    	str_volumen.Format("%f",volumen);
    	SetDlgItemText (IDC_VOLUMEN,str_volumen);
    
    }
    


  • mach mal nach dem SetDlgItemText ein UpdateData(), vll gehts dann



  • ERstmal wird die OnKill.. Methode afair automatisch aufgerufen, bevor die OnBnClicked Methode dran kommt (also dürfte der Aufruf dort drin überflüssig sein). Und zweitens solltest du den Wert erst holen und dann nach double umwandeln 😉



  • Schau dir diese Zeilen mal an (hab unschuldiges gekürzt) und denk nach, was die tun:

    CString str_aussenradius;
        double aussenradius = atof (str_aussenradius);
        GetDlgItemText (IDC_AUSSENRADIUS,str_aussenradius);
    

    PS: Schade, CStoll hats verraten. 🤡



  • estartu_de schrieb:

    Schau dir diese Zeilen mal an (hab unschuldiges gekürzt) und denk nach, was die tun:

    CString str_aussenradius;
        double aussenradius = atof (str_aussenradius);
        GetDlgItemText (IDC_AUSSENRADIUS,str_aussenradius);
    

    PS: Schade, CStoll hats verraten. 🤡

    würde das bevorzugen: 🤡

    CString str_aussenradius;
    GetDlgItemText (IDC_AUSSENRADIUS,str_aussenradius);
    double aussenradius = atof (str_aussenradius);
    


  • Also das mit dem UpdateData() hat nicht funktionuckelt. Und die OnKillfocus()-Methode musste ich aufrufen, weil er gerade nicht automatisch diese Funktion aufruft. Aber der letzte Tipp hat geholfen. Hätte ich eigentlich auch selber drauf kommen können.

    ... jaja, der Wald und die Bäume davor. 😃

    Danke noch mal.



  • Pellaeon: Er sollte ja auch nur drüber nachdenken - vorsagen is doch langweilig. 😉



  • gemeine pädagogische Tricks hier 😉 👍


Anmelden zum Antworten