DDX / DDV Anweisung ändern / abstellen
-
Hallo: folgendes Problem!
Ich habe ein Adressverwaltungsprogramm geschrieben. Die PLZ-Eingabe kann zwischen 0 und 99999 liegen! Gebe ich jetzt z.B. Buchstaben oder eine andere Zahl, kommt eine Fehlermeldung. Dann macht er aber trotzdem normal weiter und fügt die Daten in die Map ein! Wie kann ich die Fehlerbehandlung selber schreiben bzw. ändern. Dies ist der Bereich im Quellcode, wo er die Fehler überprüft: DDX_Text(pDX, IDC_PLZ, m_PLZ); Kann ich das ändern?Danke, Stefan
-
Suche im Klassenassistenten->Nachrichtenzuordnungstabellen nach "IDC_PLZ".
Erstelle für die Nachricht "EN_CHANGE" eine Funktion.
Überprüfe in dieser Funktion die Variable "m_PLZ" ob der Wert gültig ist.
Schreibe im Fehlerfall einen geänderten Wert hinein.
UpdateData(..) nicht vergessen.
-
Danke, das funktioniert schonmal!
Noch eine Frage. Jedesmal wenn ich den Datensatz in die Ma eintrage lösche ich die Felder. Gibt's die Möglichkeit das m_PLZ Feld ganz zu löschen. Im Moment muss ich immer eine 0 reinschreiben, da er nach einer positiven Ganzzahl verlangt. Möglichst soll das Feld also leer sein und m_PLZ sollte DWORD bzw int sein!
Danke, Stefan
-
m_PLZ nicht als Int sonder als CString.
Wenn die Prüfung selbst vorgenommen wird, kannst du dort den String in ein Int. umwandel atoi().
-
Ich hab' mich auch entschieden, m_PLZ als String zu machen. Ist besser so! Trotzdem vielen Dank!
Stefan