CEdit und MFC

#1035802
Lesenswert?

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
Persönliche Seite #1035817
Lesenswert?

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.
#1036087
Lesenswert?

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.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren