CEdit-Box und Fließkommazahlen
-
Hallo
Gibt es eine einfach Möglichkeit ? In einer CEdit-Box Fließkommazahlen zu erlauben?
Also so dass "klefjj" nicht erlaubt ist aber "2.9" schon ?
Ich wüsste jetzt nur Eine Eingenklasse von CEdit abzuleiten und OnChar zu überschrteiben...
Geht das leichter ?Gruß
Martin
-
Hallo
Ok achja ich hab das jetzt schnell so gelöst.
afx_msg void CEditFloat::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) { if ( (nChar >= '0' && nChar <='9') || (nChar == '.' && NoPointInText() )|| nChar == VK_BACK) { CEdit::OnChar(nChar, nRepCnt, nFlags); } else { ShowBalloonTip(_T("Unacceptable Character"),_T("You can only type a number here."),TTI_ERROR); MessageBeep(-1); } } bool CEditFloat::NoPointInText() { CString text; GetWindowText(text); if (text.Find('.') == -1) return true; else return false; }
Dabei ist mir aufgefallen dass die CEdit-box die Fehlermeldung nicht lokalisiert.
Also hab ichs fürs erste gleich gemacht.Das was mich halt etwas stört an der Lösung ist:
Dass es ja auf einem anderem System mit andere Sprache vielleicht nicht das "." als Trennzeichen gilt.
Kann man das irgendwie auslesen ?