Timer - einen zweiten SetTimer



  • habe ein Problem

    SetTimer(ID_TIMER,250,0);//initialisierung
    SetTimer(IDC_Button_Info,2000,0);
    
    //dekleration
    
    void MyDlg::OnTimer(UNIT nIDEVENT)
    {
    CTime CurTime = CTime::GetCurrentTime();
    
    this->m_Zeit=CurTime.Format("%H:%M:%S")
    this->UpdateData(FALSE)
    
    KillTimer(0);
    
    }
    

    Diese Funktion arbeitet sauber und ist ok.
    Ich möchte jetzt moch ein zweiten Timer setzen der sich nicht alle 250 ms abläuft sondern der sich unabhängig alle 2 s abläuft.
    Ich möchte das der Button sich alle 2 Sekunden ändert.

    Bekomme das nicht so hin

    wer kann helfen

    Vossy



  • OnTimer wir jedesmal bei einem WM_TIMER aufgerufen. Egal welcher Timer es ausgelöst hat.

    nIDEVENT

    Gibt dir die Nummer des Timmers

    if (nIDEVENT == 1)
    {
    // Timer 1
    }
    if (nIDEVENT == 2)
    {
    // Timmer 2 
    }
    

    u.s.w.

    [ Dieser Beitrag wurde am 08.04.2002 um 13:00 Uhr von Unix-Tom editiert. ]



  • Hi,
    Du solltest in OnTimer, nIDEVENT auswerten und entsprechend was der Timer veranstalten soll, machen:

    switch(nIDEVENT)
    {
    case ID_TIMER :
    ...
    break;

    case IDC_Button_Info :

    // Mach was mit Button etx.
    break;

    }

    Gruss Thomas



  • nIDEVENT gibt mir leider keinen Wert zurück

    sieht jetzt so aus

    SetTimer(ID_TIMER,250,0);//wird in OnIntDialog initialisiert
    SetTimer(IDC_Button_Info,2000,0);
    
    // hier gibt es nicht die möglichkeit nIDEvent einem Timer zuzuweisen
    //--------------------------------------------------------
    
    void MyDlg::OnTimer(UNIT nIDEVENT)
    {
    
    if if(nIDEvent == 1)
    {
    CTime CurTime = CTime::GetCurrentTime();
    
    this->m_Zeit=CurTime.Format("%H:%M:%S")
    this->UpdateData(FALSE)
    }
    if(nIDEvent == 2)
    {
        if(wechsel == FALSE)
        {
        m_Button_Item3.SetIcon(IDI_ICON11);
        wechsel = TRUE;
        goto ENDE;
        }
        if(wechsel == TRUE)
        {
        m_Button_Item3.SetIcon(IDI_ICON12);
        wechsel = FALSE;
        goto ENDE;
        }
    }
    ENDE:;
    }
    

    Deklariere ich so passiert garnichts
    nehme ich
    if(nIDEvent == 1)
    if(nIDEvent == 2)
    raus geht es aber das Blinken bezieht sich auf 1/2 sekunde was ja auch richtig ist

    Wie weise ich also nIDEvent zu und wo deklariere ich das

    Vossy



  • if if(nIDEvent == 1)
    
    //ist falsch muß natürlich 
    
    if(nIDEvent == 1)
    
    //heißen
    

    Vossy



  • Hallo,

    Du mußt die Abfrage so machen:
    if (nIDEvent == ID_TIMER) ...
    Da brauchst du nichts deklarieren oder zuweisen.

    Gruß mathi

    [ Dieser Beitrag wurde am 08.04.2002 um 14:17 Uhr von mathi editiert. ]



  • Danke jetzt geht es

    Vossy

    wäre was für die FAQ


Anmelden zum Antworten