"Nicht-Initialisierung" eines CEdit-Controls



  • Hi!

    Ich habe einen Dialog mit mehreren CEdit-Controls, für die nur ganzzahlig positive Werte zugelassen sein sollen. Entsprechend habe ich die Eigenschaften der Controls gesetzt und für den Dialogdatenaustausch int-Membervariablen definiert.

    Jetzt würde ich gerne die CEdit-Controls nur dann auswerten, wenn der User tatsächlich einen (numerischen) Wert eingegeben hat und suche deshalb nach einer Möglichkeit, die Controls "leer" zu lassen (auch der User sollte die Möglichkeit haben, einen eingegebenen Wert wieder "zu löschen"). Die int-Variablen nicht zu initialisieren, bringt mich hier natürlich nicht weiter und das Löschen des CEdit-Inhalts ist selbstverständlich auch nicht möglich.

    Die einzige Idee, die ich dazu hatte, war, eine eigene Klasse von CEdit abzuleiten, über den Stil des Controls prinzipiell Texteingabe zuzulassen, aber "manuell" dafür sorgen, dass nur positive Ganzzahlen eingegeben werden und einen "leeren String" als "keine Eingabe" aufzufassen.

    Muss ich mir diese Arbeit machen, oder gibt es vielleicht auch noch eine andere Möglichkeit?

    Vielen Dank vorab!



  • Also, ganz sicher funktioniert das: http://www.codeproject.com/editctrl/validatingedit.asp
    Evtl. reicht auch, wenn du zwar eine CString Variable nutzt, aber in den Eigenschaften festlegst, dass nur Zahlen eingegeben werden können.



  • Danke für die schnelle Antwort und den Link: das sieht sehr interessant aus, kann man sicher einmal brauchen!
    Nachdem aber offensichtlich dein zweiter Vorschlag ebenfalls zu funktionieren scheint (habe es kurz probiert), werde ich in diesem Fall wohl doch eher diesen Weg gehen.

    Danke nochmal!


Log in to reply