Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » timer & updatedata problem

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
20.11.2005, 07:50 Uhr
killcommander




C++:

void CsleepertempDlg::OnBnClickedButton1()
{
    //UpdateData(FALSE);
    CTime curTime2 = CTime::GetCurrentTime();
    UpdateData(TRUE);
    m_istunde=curTime2.GetHour()+(m_iCount/60);//m_iCount: wert der eingabe in min.
    
    m_iminute=curTime2.GetMinute()+(m_iCount%60);
    CString test;
    test.Format("%d : %d",m_iCount,m_iminute);
    SetTimer(ID_CLOCK_TIMER, 1000, NULL);
    MessageBox(test);
    
    
}

void CsleepertempDlg::OnTimer(UINT nIDEvent)
{
    CTime curTime = CTime::GetCurrentTime();    

    m_zeit.Format("%d:%d:%d",curTime.GetHour(),curTime.GetMinute(),curTime.GetSecond());




    int imin=m_iminute-curTime.GetMinute();
    int ihour=m_istunde-curTime.GetHour();
    m_sshutdown.Format("%d:%d",ihour,imin);
    
    UpdateData(FALSE);
    
}




warum setzt es mir meine eingaben immer wieder auf 0 oder anderen schwachsinn

gruß
--
Achtung NOOBIE ALARM
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
20.11.2005, 08:34 Uhr
Tommix



'Morgen,
durch das UpdateData am Ende der Timer-Funktion. In dem Moment sind die Variablen ja nicht aktuell, das mußt Du entweder von Hand machen (UpdateData(TRUE) am Anfang) oder aber die Textausgabe nicht mit UpdateData sondern mit SetWindowText. Vermutlich ist das zweite hier besser, sonst hast Du womöglich "halbe" Eingaben. Also m_sshutdown und m_zeit raus, statt dessen den CStatics mit dem Wizard Membervariablen vom Typ CStatic verpassen, m_shutdown und m_zeit meinetwegen und dann

C++:
void CsleepertempDlg::OnTimer(UINT nIDEvent)
{
    CTime curTime = CTime::GetCurrentTime();    
    CString zeit = curTime.Format("%H:%M:%S");
    m_zeit.SetWindowText(zeit);

    int imin=m_iminute-curTime.GetMinute();
    int ihour=m_istunde-curTime.GetHour();

    CString shutdown;
    shutdown.Format("%d:%02d", ihour, imin);
    m_shutdown.SetWindowText(shutdown);  
}



Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
20.11.2005, 23:23 Uhr
killcommander



Ok ich habs ... vielen dank ...


C++:


void CsleepertempDlg::OnTimer(UINT nIDEvent)
{
    CTime curTime = CTime::GetCurrentTime();    
    CString zeit = curTime.Format("%H:%M:%S");
    m_ctrzeit.SetWindowText(zeit);

    int imin=m_iminute-curTime.GetMinute();
    int ihour=m_istunde-curTime.GetHour();

    CString shutdown;
    shutdown.Format("%d:%02d", ihour, imin);
    m_ctrshutdown.SetWindowText(shutdown);  
}



allesdings muss man für m_shutdown bzw b_zeit nicht membervariablen mit CString auwählen sondern Controll variablen ... dann gibts auch SetWindowText();

danke nochmal

kc
--
Achtung NOOBIE ALARM
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: