double Variable in Edit Control ausgeben
-
Hallo leute, ich habe ei Edit Control, wo ich einen Wert ausgeben möchte.
Habe eine Variable vom Typ "double". nun möchte ich den Wert, den mir die Variable liefert, in mein Edit Control (IDC_FLAECHE) einfügen, sozusagen, dass ich den wert auf meiner Maske sehen kann.
könnt mir helfen??habe gesehen, wie man nen double Wert in string umwandelt. aber anschließend bekomme ich s nicht in mein Edit Control. dies wäre der umfassende weg.
ich würde aber gerne, direkt den double Wert in mein Edit Control einbringen.
Geht dies??
-
Der direkte Weg ist es, das Edit-Feld im Klassenassistenten mit einer double-Variable zu verknüpfen. Dann kannst du mit UpdateData(TRUE) die Nutzereingaben in deine Variable packen und mit UpdateData(FALSE) die geänderten Werte ins Editfeld zurückschreiben.
-
also, ich will ja aber in das edit feld, erst was reinschreiben, wenn ich eine bestimmte funktion durchlaufen habe.wäre dies auch nach deinem beispiel möglich??
wie soll ich dies machen??
-
Klar ist alles möglich:
//Wert berechnen und schreiben void OnCalc() { ... m_flaeche = /*whatever*/; UpdateData(FALSE);//trägt den Variableninhalt in das Feld IDC_FLAECHE ein }
PS: Die Alternative zu einer Wert-Variablen wäre eine Control-Variable (CEdit) - da kannst du teilweise feiner kontrollieren, welche Felder aktualisiert werden sollen (UpdateData() synchronisiert ALLE Variablen mit den zugehörigen Dialogelementen), mußt dich aber selber um die Formatierung etc kümmern:
void OnCalc() { ... double f = /*whatever*/; CString str;str.Format("%.2f",f); m_flaeche.SetWindowText(str); }
-
so hatte ich das mit gedacht. leider hatte ich einen kleinen fehler drinne, so dass er mir "(null)" angezeigt hat.
eine frage noch: kann ich eigentlich die farbe des edit controlls ändern? so dass mir z.b. das feld in blau angezeigt wird?
-
PiotreD schrieb:
eine frage noch: kann ich eigentlich die farbe des edit controlls ändern? so dass mir z.b. das feld in blau angezeigt wird?
Ja, aber das ist nicht gerade trivial. Du mußt die OnCTLColor deines Fensters überladen und dort einen farblich passenden HBRUSH (zu deutsch "Pinsel") zurückgeben, mit dem das Editfeld gemalt werden soll.
-
ok..dann lasse ich s lieber..
-
Nun lass dich doch nicht so leicht erschrecken und guck mal ob du mit den Sachen in der FAQ was anfangen kannst.