tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
772
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    ozzijoe ozzijoe ist offline Grünschnabel
    Registriert seit
    Feb 2004
    Beiträge
    2
    Nur ein kleines Problem, aber ich bin Neuling mit VC++/MFC :

    In einem Dialog moechte ich ueber ein Editfeld nur die Eingabe von Dezimalzahlen zulassen. Ich habe im Klassen-Assistenten unter Member-Variablen dem Steuerelement eine float-Variable zugeordnet. Der Dialog funktioniert auch prinzipiell, es lassen sich aber in dem Feld nur ganze Zahlen eingeben (kein Komma bzw. Punkt, Minuszeichen). Was muss ich aendern?

    Danke fuer einen Tip!

    Joe
     

  2. #2
    Registriert seit
    Jul 2003
    Ort
    Duisburg (NRW)
    Beiträge
    1.788
    Ändere ddas float-Member in einen CString (mit dem Assistenten). Dann können auch Minuszeichen und Kommata eingeben werden - allerdings auch Buchstaben usw.
    An den float-Wert kommst du beispielweise so dran:
    Code :
    1
    
    float fMeinFloat = atof( LPCTSTR( m_strEdit ) );
     
    Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."

  3. #3
    ozzijoe ozzijoe ist offline Grünschnabel
    Registriert seit
    Feb 2004
    Beiträge
    2
    Danke! Hat aber den Nachteil, dass eben Buchstaben mit eingegeben werden koennen. Natuerlich kann ich das im eigenen Programm abfangen, aber da haette sich MS ja auch noch was Freundlicheres einfallen lassen koennen.

    Joe
     

  4. #4
    Registriert seit
    Jul 2003
    Ort
    Duisburg (NRW)
    Beiträge
    1.788
    Stimmt. Man kann die Buchstaben allerdings auch abfangen. Das ist allerdings ein kleines bischen kniffliger, weil man dazu nicht die Hilfe vom Assistenten bekommt. Und zwar fängt man in der PreTranslateMessage() des Dialogs die Messages für das Edit ab und ignoriert alle Zeichen, die einem nicht passen. Leider ist dann immer noch nicht gewährleistet, dass nur wohlgeformte Zahlen zurchkommen, weil damit Sachen wie "1-1-1-1-1-......" usw. nicht verhindert werden. Das muss man auf andere Weise lösen.
     
    Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."

Ähnliche Themen

  1. Rechtsklick im Editfeld
    Von Winner im Forum VisualStudio & MFC
    Antworten: 0
    Letzter Beitrag: 14.04.09, 09:16
  2. Editfeld
    Von shader09 im Forum C/C++
    Antworten: 12
    Letzter Beitrag: 28.02.08, 15:06
  3. MFC Editfeld Textzuweisung
    Von Domestos im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 12.04.05, 20:16
  4. Editfeld net!
    Von mstank im Forum VisualStudio & MFC
    Antworten: 5
    Letzter Beitrag: 21.02.05, 12:38
  5. In Editfeld schreiben
    Von Tobias K. im Forum VisualStudio & MFC
    Antworten: 6
    Letzter Beitrag: 29.11.04, 20:49