Timer löscht alle Eingabefelder :/
-
Hi, ich bin gerade dabei MFC zu lernen (seit 2 Tagen)
Nun wollte ich bei meinem Dialog aktuelle Uhrzeit einbauen. Hat alles auch geklappt, aber nun werden die Eingabefelder im Sekundentakt gelöscht
Kann mir jemand sagen woran es liegen kann?BOOL CLoaditupDlg::OnInitDialog() { CDialog::OnInitDialog(); . . . // Dialogfeld aktualisieren UpdateData(FALSE); // Timer für Uhr starten SetTimer(ID_CLOCK_TIMER, 1000, NULL); return TRUE; // Geben Sie TRUE zurück, außer ein Steuerelement soll den Fokus erhalten }void CLoaditupDlg::OnTimer(UINT nIDEvent) { // TODO: Code für die Behandlungsroutine für Nachrichten hier einfügen und/oder Standard aufrufen // Aktuelle Zeit holen CTime curTime = CTime::GetCurrentTime(); m_sTime.Format("%d:%d:%d", curTime.GetHour(), curTime.GetMinute(), curTime.GetSecond()); UpdateData(FALSE); CDialog::OnTimer(nIDEvent); }
-
DU musst zunächst UpdateData(TRUE) aufrufen, damit die aktuell in den Controls gespeicherten Werte in die zugehörigen Member gespeichert werden. UpdateData(FALSE) setzt einfach plump alle Controls auf den Wert der in der zugehörigen Membervariablen gespeichert ist.
Ist leider bei der MFC etwas schrottig diesbezüglich...
-junix
-
Vielen Dank!!
Zwar hab ich bissel gebraucht bis ich das verstanden habe
aber jetzt geht das 