MFC Anwendung programmieren, Kleiner Einheiten Umrechner - diverse Fragen eines Anfängers



  • Gut danke - ab sofort kürzer 😉

    1. %.2f" scheint zu printf zu gehören und ist somit "C" und nicht "C++" ?
      Außerdem nutze ich ja GetWindow und SetWindow zur Ausgabe in einem Textfenster, wo soll ich da nen printf einbauen?

    @ ctecs: Danke, defaultbutton klappt.

    Okay, dachte das mit der Schriftart geht vllt. einfacher, hab jetzt die allgemeine Schriftart größer eingestellt und werde es so lassen.

    Den Ereignishandler hab ich gesehen, nur weiß ich nicht welcher Code da rein muss - werds mal bei google weitersuchen.



  • PhilippW schrieb:

    1. %.2f" scheint zu printf zu gehören und ist somit "C" und nicht "C++" ?
      Außerdem nutze ich ja GetWindow und SetWindow zur Ausgabe in einem Textfenster, wo soll ich da nen printf einbauen?

    Du meinst SetWindowText, ne. sprintf (nicht printf, sprintf für Strings) ist auch Bestandtel von C++, wenn auch die Herkunft bei C liegt. Du kannst sehr wohl einen char* erzeugen und mit sprintf befüllen. Du kannst aber auch genausogut einen CString nehmen und Format()/AppendFormat() benutzen. Die Syntax ist übrigens die gleiche (vielleicht bis auf minimale Ausnahmen, bin da nicht ganz sicher).

    EDIT: Kleines Beispiel:

    CString cs;
    float f=.5;
    cs.Format("%.2f",f);
    


    1. EditCtlr im Dialog erstellen, rechte Mousetaste->Ereignishandler hinzufügen, Meldungstyp "EN_CHANGE" einstellen, OK. Der Wizzard erstellt dir nun u.a. die Methode, die bei jeder Änderung des EditCtrls aufgerufen wird. Dort kommen dann die Dinge rein, die du bei jeder Änderung durchführen lassen willst. In deinem Fall wäre hier eine Überprüfung der eingegebenen Zahl durchzuführen.


  • danke matze hat geklappt 😉 - jetzt hab ichs auch verstanden

    hab das ".2f" mit in meine rechnung/umwandlung reingeschrieben.

    void CUmrechnerFinalDlg::OnBnClickedkminm()
    {
    	CString Tmp;
    
    	GetDlgItem(IDC_Eingabe)->GetWindowText(Tmp);
    	Tmp.Format("%.2f",atof(Tmp)/1.609344);
    	GetDlgItem(IDC_Ausgabe)->SetWindowText(Tmp);
    }
    

Anmelden zum Antworten