Kommazahl in einem CEdit Control

gabifi

Mitglied
Hallo,
ich möchte in einem kleinen Edit Control - Feld eine Kommazahl anzeigen sowie auslesen, also z.B. 10,20. Is das irgendie möglich? Über DDX habe ich schon ne float-Zahl verknüpft und mit ganzen Zahlen geht au alles wunderbar, nur würd ich jetzt gern Kommazahlen mit aufnehmen.

Danke für eure Hilfe
Gabriel
 
Wenn du das Edit-Feld schon mit einer float-Variable verknüpft hast, sollte das Ganze doch kein Problem mehr sein:
C++:
////////////////////
// Schreiben
m_fValue = 10.2f; // m_fValue ist die DDX-Variable
UpdateData(FALSE);

////////////////////
// Lesen
UpdateData(TRUE);
float fNewValue = m_fValue;
Damit die Werte richtig formatiert werden, also mit Komma als Dezimaltrenner, solltest du noch folgende Zeile in OnInitDialog() ergänzen:
C++:
setlocale(LC_NUMERIC, "");
Gruß
MCoder
 
Hm, Danke, das
Code:
 ssetloca/LC_NUMERIC,"")
wird irgendwie nicht akzeptiert. Es muss schon in die OnInitDialog() des Dialogs rein?

Ich möcht halt ein feld, in dem nur Ziffern und Komma oder Punkt erlaubt ist. Die Eingabe von Buchstaben sollte verhindert werden, aber die Eingabe von nem Punkt erlaubt sein.
 
Ich hoffe, du hast di Zeile nicht so eingetippt, wie sie hier angezeigt wird: ssetloca/LC_NUMERIC,""). Das ist nämlich syntaktisch falsch.

Wenn du nur die Eingabe bestimmer Zeichen bzw. Formate zulassen willst, musst du nach jeder Eingabe das eingetippte Zeichen überprüfen und ggf. verwerfen. Dazu leitest du am besten eine eigene Klasse von CEdit ab fügst dort eine Methode für die WM_CHAR-Nachricht ein, in der dann die Eingabeprüfung erfolgen kann.

Gruß
MCoder
 
Zurück