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..........
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.