Anzeigen von Nachkommastellen eines doubles in einem Edit Controls, wenn die Eingabe ganzzahlig ist



  • Hallo.

    In meiner Anwendung habe ich ein modales Dialogfeld, welches aus einer Ressource geladen wird. Das Dialogfeld enthält mehrere Edit Controls, über die ich double-Werte einlesen möchte. Der Datenaustausch erfolgt über DDX/DDV. Soweit funktioniert das auch ganz gut. Ich möchte allerdings immer zwei Nachkommastellen angezeigt bekommen, auch wenn die eingegebene Zahl eine ganze Zahl ist (z.B. 41.00). Beim Eingeben sind die beiden Nachkommastellen ja noch da, bei einem erneuten Aufruf des Dialoges und somit dem erneuten Laden der Werte werden die Nachkommastellen (sofern .00) weggelassen. Wie kann man realisieren, dass diese angezeigt werden bzw. beim Speichern als String auch mit abgelegt werden?



  • du könntest die Zahl in dem EditFeld einfach als CString darstellen und mit CString.Format() passend formatieren

    Halt ich zwar für nen Workaround aber ich bin mir spontan nicht sicher wie das anders zu bewerkstelligen ist. Irgendwie kann man glaub ich auch floats formatieren (printf vll?) schon ewig nicht mehr gemacht und kann auch sein das ich das nur geträumt hab 😉



  • Das Problem dabei ist, dass ich ungern auf DDX/DDV verzichten will. Es funktioniert wenn man die Membervariablen als Abbild auf ein CEdit deklariert und man sich dann den Wert mit GetWindowText() holt. Allerdings muss man dann die Bereichsprüfung und die Konvertierung selbst übernehmen. Gibt es nichts, was direkt in DoDataExchange eingreift?


Anmelden zum Antworten