ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
478
478
EMPFEHLEN
-
12.02.04 09:37 #1
- Registriert seit
- Nov 2003
- Ort
- Hamburg
- Beiträge
- 157
Hallo,
kann mir jemand sagen, wie ich ein Einagebfeld auf 25 zeichen beschränken kann?
So dass wenn mehr Zeichen eingegeben werden einfach die letzten nicht mehr akzeptiert werden?
Und dann hab ich noch die Frage, ob ich ein Eingabefeld so formatieren kann, dass nur Zahlen erlaubt sind, aber auch negative....
Für Hilfe wäre ich sehr dankbar.
-
12.02.04 10:12 #2
- Registriert seit
- Jul 2003
- Ort
- Duisburg (NRW)
- Beiträge
- 1.788
Hier kommt ein Schnipsel für dich!
PreTranslateMessage() wird vor der Verarbeitung jeder Windowsnachricht aufgerufen (Mit Classwizard in den Dialog einsetzen!). Damit kannst du alles abfangen, was du willst. Wenn du nichts unternehmen willst, gib ein TRUE zurück - dadurch wird das Standardverhalten (z.B. Einfügen eines Zeichens) ausgelöst.
Wenn du zum Beispiel eine Längenprüfung einbauen willst, könntest du das bei WM_CHAR machen und bei zu lngem String das Zeichen nicht einfügen und ein FALSE zurückgeben (sonst wird er doch noch eingefügt). Nicht vergessen, dass gewisse Tasten (Backspace) auch zur Verkürzung führen können. Ausserdem berücksichtigen, was Copy&Paste anrichten könnten!
Das Beispiel fängt das 'x' ab und ersetzt es durch ein 'u'. Ich habe den Schnipsel in dieser Form nicht kompiliert; es können sich also Fehler eingeschlichen haben.
Ich hoffe, das hilft dir weiter!Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
BOOL CEinDlg::PreTranslateMessage(MSG* pMsg) { if ( pMsg->hwnd == m_ctlEdit.GetSafeHwnd() && pMsg->message == WM_CHAR ) { char c = pMsg->wParam; if ( c == 'x' ) { // es ist ein x, also ein u draus machen c = 'u'; CString temp; m_ctlEdit.GetWindowText( temp ); temp += c; m_ctlEdit.SetWindowText( temp ); return FALSE; } else { // es ist was anderes, also Defaultverhalten return TRUE; } } else { // ist irgendwas anderes - ignorieren return CDialog::PreTranslateMessage(pMsg); } }Geändert von Kachelator (12.02.04 um 10:37 Uhr)
Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."
-
12.02.04 10:59 #3
- Registriert seit
- Nov 2003
- Ort
- Hamburg
- Beiträge
- 157
Irgendwie steig ich da nicht so richtig durch....
Kansnt du mir das vielleicht etwas genauer erklären?
-
12.02.04 14:00 #4
- Registriert seit
- Jul 2003
- Ort
- Duisburg (NRW)
- Beiträge
- 1.788
Vielleicht, wenn du mir erklärst, was du nicht verstehst? Ansonsten erschien mir die Information recht vollständig zu sein.
Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."
-
12.02.04 15:34 #5
- Registriert seit
- Nov 2003
- Ort
- Hamburg
- Beiträge
- 157
Hi,
ich hab das nun so gemacht, dass ich für die Eingabefelder Membervariablen mithilfe des Klassenassistenten erstellt habe und diese Variablen dann so eingestellt habe, dass halt nur 25 Zeichen bzw eine Zahl von 1900 bis 2100 eingegeben werden dürfen.
Kann mir jemand sagen, wie ich es nun schaffe ein EIngabefeld zu leeren also so das es blank ist, auch wenn es als Integerfeld eingestellt ist?
Weil das was ich sonst benutze sowas wie: m_strTitel = " ";
Geht in diesem Falle nicht....
-
12.02.04 15:49 #6
- Registriert seit
- Jul 2003
- Ort
- Duisburg (NRW)
- Beiträge
- 1.788
Oh, ich hatte angenommen, dass du Edit-Controls als Member verwendest anstelle von CStrings.
Die CEdit kannst du dir statt CStrings vom Classwizard einsetzen lassen. Das solltest du vielleicht tun, da du dadurch wesentlich mehr Kontrolle über das Verhalten bekommst. Die Verwendung ist auch nicht allzu knifflig. Mein Codeschnipsel von oben bezog sich übrigens auf die Verwendung eines CEdit.Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."
Ähnliche Themen
-
Eingabefelder hinzufügen
Von Calab im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 14.04.06, 20:12 -
C++ - Eingabefelder
Von DO1983 im Forum C/C++Antworten: 5Letzter Beitrag: 05.11.04, 00:09 -
Eingabefelder.....
Von BigBruder im Forum HTML & XHTMLAntworten: 2Letzter Beitrag: 15.11.03, 08:13 -
Eingabefelder
Von BlackJack im Forum PHPAntworten: 4Letzter Beitrag: 18.11.01, 11:59 -
3d-Eingabefelder
Von Kimble im Forum CSSAntworten: 7Letzter Beitrag: 16.10.01, 10:47





Zitieren
Login






