Anzeigen automatisch generierter Daten in Edit-Feldern
-
Hi zusammen,
ich hab da mal ne Frage. Und zwar schreibe ich im Moment eine Anwendung in welcher der User bestimmte Einträge in eine Datenbank schreiben kann. Diese Einträge bekommen jeweils eine vom Programm generierte ID. Diese ID soll dem User angezeigt werden. Und da hänge ich nun fest.
Wenn ich dem Editfeld (MessageID) eine Membervariable (m_sEntryID) des Typs CString zuweise und dann mittels:
void CEntryDlg::OnEnChangeMessageID() { m_sEntryID = GetMaxID()+1; UpdateData(FALSE); }die Zuweisung vornehme, gehe ich eigentlich davon aus, das der Wert (GetMaxID()+1) in dem Editfeld (MessageID) angezeigt wird. Aber Fehlanzeige, der Wert wird erst in diesem Feld angezeigt wenn ich versuche etwas in dieses einzutippen.
Also: Bleibt das Editfeld mit der o.g. Zuweisung unangetastet, dann geschieht nichts. Versuche ich aber irgendwas in dieses Editfeld einzutippen, wird meine Eingabe augenblicklich gelöscht und ich bekomme den gewünschten Wert eingetragen.
Das ist nicht ganz in meinem Sinne, eigentlich wollte ich das der User sofort die ID angezeigt bekommt, ohne das soetwas passiert. Ich bin ein absoluter Neuling auf diesem Gebiet, programmiere normalerweise reine Konsolenanwendungen.
Was muss ich machen, damit der gewünschte Wert in dem Editfenster automatisch beim öffnen des Dialoges angezeigt wird???
Kann mir da jemand helfen bitte?Liebe Grüße und Danke,
Julian.
-
Verfrachte das ganze in OnInitDlg().
-
Moin Flockig,
vielen Dnak für deine schnelle Antwort, hätte ich das ganze Dialogbasierend gemacht, wüsste ich jetzt wo ich OnInitDlg finde. Da ich aber beim Erstellen meines Projektes die Option "Einfaches Dokument" gewählt habe, sieht alles recht anders aus und ich finde lediglich "OnInitialUpdate()".
Wo ist der Fehler? Tut mir leid wenn ich so saublöde Fragen stelle, aber ich fange wie gesagt gerade erst mit MFC an und irgendwie sieht das alles für mich spanisch aus...mit Konsole wäre die Welt so easy ^^.
Liebe Grüße,
Julian.---------------------------
EDIT:
Einmal kurz in die Überschreibungen der Klasse reingeschaut und schon hat ichs gefunden. Tschuldige.
Funktioniert absolut einwandfrei vielen vielen Dank an dich!!!

Bye
-
Aufgrund
beim öffnen des Dialoges
bin ich davon ausgegangen, dass du eine dialogfeldbasierte Anwendung erstellst. Dort initialisiert man die Controls in OnInitDlg().
Bei einer SDI-Anwendung benutzt man hierzu OnInitialUpdate().