Zahl Eingabefeld muss nach öffnen des Dialog znächst leer sein
-
Hallo zusammen.
ich habe in einem Dialog zwei eingabefelder für Zahlen und eine eingabe feld für die ausgabe der ergebnise und ein Berechnen Button.
ich möchte nur dass die 3 Eingabefelder nach öffnen des Dialogs leer sind.Konstruktur: { .... m_iEingabe1 = 0; m_iEingabe2 = 0; m_iEingabe3 = 0; } DoDataExchange { .... DDX_Text( pDX, IDC_EDIT_N, m_iEingabe1); DDV_MinMaxInt(pDX,m_iEingabe1 ,2,3000); DDX_Text( pDX, IDC_EDIT_N, m_iEingabe2); DDV_MinMaxInt(pDX,m_iEingabe1 ,1,30); DDX_Text( pDX, IDC_EDIT_N, m_iEingabe3); }so werden meine eingabefelder immer mit 0 initialisiert
kennt jemand einen Trick wie mann sie leer kriegt vor anzeige des Dialogsdanke im voraus
jolem
-
Hallo,
Nimm anstatt Datentyp
intden Datentyp
CStringund initialisiere die Variable dann mit "".
Also:CString cstrEingabe1 = "";Du kannst den späteren Wert ja dann in
intumwandeln!
-
Wenn du du Edits als int oder dergleichen erstellst, dann wird da immer "0" stehen, wenn du nichts einträgst.
Sonst jammert er glaub ich rum "Bitte einen Integer zwischen X und XXX eingeben" oder so.zur Lösung von Daniellus sei gesagt, dass er dann auch Alle anderen Zeichen annimmt. Du musst dann noch eine Überprüfung einbauen, die alles außer Zahlen rausstreicht.
Weil einen Char z.B. "A" wandelt das prog dann mit dem befehl (int) "A" einen Int wert (glaube 65) drauß macht. Sonst hauen deine Berechnungen später net hin. Und wenn du Kommata verwenden willst, muss du "." und "," tauschen. Aber das ist ja nix neues
atoi()mal anschauen, vielleicht hilft dir das weiter.
-
danke für die schnelle Antwort.
wenn ich die Variablen als String defeniere kann ich keine automatische Prüfung mit DDV_MinMaxInt(pDX,m_iEingabe1 ,2,3000) machen. stimmt das ?
dh. ich muss die Prüfung manuel machen. oder gibt es da eine andere Möglichkeitdanle
jolem
-
Also ich kenn da keine vorgefertigte Funktion, die einen CString auf Zahleninhalt prüft.
Da musst du dir wohl selber eine bauen.