Hi Leuts, ich muss bei einem CEdit Eingabefeld der MFC zur Laufzeit umschalten, ob nur numerische oder auch alphanumerische Eingaben zulässig sind.... Irgendwie geht es wohl, was ich diversen Beiträgen aus dem Internet entnehmen kann. Aber ein konkretes Beispiel find ich nicht. Kann mir jemand helfen ? Greets Karlheinz
Eine Möglichkeit: Lass alle Eingaben zu und kontrolliere es selber. Dazu musst Du eine eigene Klasse von CEdit ableiten, und in der den Messagehandler für eingegebene Zeichen (WK_KEYPRESSED) überladen. In Deiner Implementierung bestimmst Du, ob das Zeichen zulässig ist und rufst dann den Messagehandler der Basisklasse (CEdit::OnKeypressed) auf, ist es nicht zulässig, rufst Du ihn nicht auf.
Hm, ich habe jetzt folgendes probiert: void CAlphaNumEdit::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) { if (nChar == 65)// 65 = 'a' CEdit::OnKeyDown(nChar, nRepCnt, nFlags); } Problem: Was immer ich auch drücke, das Zeichen wird im Eingabefeld dargestellt, auch wenn ich nicht das 'a' betätige. Mag sein dass der Wert (UpdateData()) die anderen Zeichen nicht enthält, aber sie sollen ja auch nicht dargestellt werden..........
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.