Datum wird nicht angezeigt(Tut aus c++ in 21 Tagen)

sacridex

Mitglied
Ich bin zurzeit dabei das Online Buch "Visual C++ 6 in 21 Tagen durchzuarbeiten.
Ich bin im Moment bei Tag 4(http://download.pearsoned.de/leseecke/VCPLUS6_21Tg/data/start.htm)
Und jetzt habe ich folgendes Problem: Ich hab den Code soweit übernommen, und verstehe ihn sogar größtenteils ;) Bin bei Abbildung 4.4, wo das Datum angezeigt werden soll, jedoch wird bei mir boss "21" angezeigt. Und jetzt hab ich keine Ahnung an was das liegt.
Wäre nett, wenn ihr mir helfen könntet, Danke.
 
Code:
	........	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	// TODO: Add extra initialization here
	
	SetTimer(ID_CLOCK_TIMER, 1000, NULL);

	return TRUE;  // return TRUE  unless you set the focus to a control
}

.....................

void CTimerDlg::OnExit() 
{
	OnOK();	
}

void CTimerDlg::OnTimer(UINT nIDEvent) 
{
	CTime curTime = CTime::GetCurrentTime();
	m_sTime.Format("%d:%d:%d", curTime.GetHour(), curTime.GetMinute(), curTime.GetSecond());
	UpdateData(FALSE);
	CDialog::OnTimer(nIDEvent);
}

Nur die Stellen an denen ich was geändert hab. Hab alles so gemacht wie in dem Tut.
 
mach mal dass!
Code:
void CTimerDlg::OnTimer(UINT nIDEvent) 
{
      if ( nIDEvent == ID_CLOCK_TIMER)
      {
           CTime curTime = CTime::GetCurrentTime();
           m_sTime.Format("%d:%d:%d", curTime.GetHour(),  curTime.GetMinute  (),  
           curTime.GetSecond());
           UpdateData(FALSE);
      }
}
So sollte das klappen, du must wenn du einen Timer setzt diesen auch expliziet abfragen!
ich mach das immer so !
irgendwo wo ich den Timer setzen will!
Code:
SetTimer(1,1000,NULL);

..
..
void CTimerDlg::OnTimer(UINT nIDEvent) 
{
      if ( nIDEvent == 1)
      {
        // das was geschehen soll hier!
     }
}
ist etwas weiniger schreibarbeit! Du kannst natürlich soviel Timer wie du willst starten, nur müssen diese immer eindeutig sein! Wenn du einen Timer abschalten willst kannst du dises mit
Code:
KillTimer(1); // bei dir KillTimer(ID_CLOCK_TIMER);
hoffe ich konnte dir helfen

mfg sven
 
Zuletzt bearbeitet:
Also jetzt gibt er nur die Stundenzahl aus(in dem Fall "12"), die Sekunden, Minuten und ":" werden nicht angezeigt. Der Fehler wird dann wohl hier liegen:
Code:
m_sTime.Format("%d:%d:%d", curTime.GetHour(),  curTime.GetMinute(), curTime.GetSecond());
oder?
._.
 
hmm bei mir klappt es
schau mal ob in deiner Datei : ON_WM_TIMER() steht

Hast du diesen Schritt gemacht :
2. Fügen Sie mit dem Klassen-Assistenten eine Funktion für die Nachricht WM_TIMER für das Objekt CTimerDlg hinzu.
 
Setzte im Debugger genau an die Stelle ein Breakpoint und schau ob im String richtig drin ist

BTW: Schau mal ob du das CStatic Noch länger ziehen kannst in der Dialog resource, sprich die größe verändern kannst ... pass auf dass nicht andere controls drüber liegen. Kann ja sein dass der ganz text net reinpasst
 

Neue Beiträge

Zurück