Benutzereingaben in Editfeldern überwachen / Dezimalzeichen



  • Für die Überprüfung der Benutzereingaben in Editfeldern habe ich für diese subclasses eingerichtet mit der CALLBACK-Funktion EditSubProc. Dort fange ich alle ungültige Zeichen sicher ab. Für Float-Eingaben möchte ich auch das deutsche Komma als Dezimalzeichen zulassen und in einen Punkt umwandeln, damit ich atof() einsetzen kann. Ich suche eine direkte Korrektur ohne eigene Stringumwandlungen.



  • schau doch in WM_CHAR nach ob das Komma eingegeben wird und ruf dann die DefaultWindowProc mit dem Code für den Punkt auf. Oder willst du das das Komma auch im Editfeld erscheint?


  • Mod

    Und warum setzt Du nicht in Deinem Programm die korrekte locale?
    Dann stimmt doch wieder alles.



  • gosha16 schrieb:

    schau doch in WM_CHAR nach ob das Komma eingegeben wird und ruf dann die DefaultWindowProc mit dem Code für den Punkt auf. Oder willst du das das Komma auch im Editfeld erscheint?

    Danke für den Tipp! WM_CHAR --> if(wParam == 44) wParam = 46; --> DefWindowProc.
    Das Komma wird in den subclasses sofort in einen Punkt umgesetzt. Angezeigt wird dann der Punkt. Mehr erscheint mir überflüssig, denn atof() braucht den Punkt! Manchmal fragt man sogar einfache Dinge.


Anmelden zum Antworten